diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 514f68c..ee7455d 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -39,7 +39,7 @@ jobs: labels: ${{ steps.meta.outputs.labels }} tags: | m0rf30/yap-alpine:latest - file: docker/alpine/Dockerfile + file: build/deploy/alpine/Dockerfile # - name: Build and push # uses: docker/build-push-action@v5 @@ -50,7 +50,7 @@ jobs: # tags: | # m0rf30/yap-arch:latest # ghcr.io/m0rf30/yap-arch:latest - # file: docker/arch/Dockerfile + # file: build/deploy/arch/Dockerfile # - name: Build and push # uses: docker/build-push-action@v5 @@ -61,7 +61,7 @@ jobs: # tags: | # m0rf30/yap-opensuse-tubleweed:latest # ghcr.io/m0rf30/yap-opensuse-tubleweed:latest - # file: docker/opensuse-tubleweed/Dockerfile + # file: build/deploy/opensuse-tubleweed/Dockerfile - name: Build and push uses: docker/build-push-action@v5 @@ -71,7 +71,7 @@ jobs: labels: ${{ steps.meta.outputs.labels }} tags: | m0rf30/yap-rocky-8:latest - file: docker/rocky-8/Dockerfile + file: build/deploy/rocky-8/Dockerfile - name: Build and push uses: docker/build-push-action@v5 @@ -81,7 +81,7 @@ jobs: labels: ${{ steps.meta.outputs.labels }} tags: | m0rf30/yap-rocky-9:latest - file: docker/rocky-9/Dockerfile + file: build/deploy/rocky-9/Dockerfile - name: Build and push uses: docker/build-push-action@v5 @@ -91,7 +91,7 @@ jobs: labels: ${{ steps.meta.outputs.labels }} tags: | m0rf30/yap-ubuntu-focal:latest - file: docker/ubuntu-focal/Dockerfile + file: build/deploy/ubuntu-focal/Dockerfile - name: Build and push uses: docker/build-push-action@v5 @@ -101,4 +101,4 @@ jobs: labels: ${{ steps.meta.outputs.labels }} tags: | m0rf30/yap-ubuntu-jammy:latest - file: docker/ubuntu-jammy/Dockerfile + file: build/deploy/ubuntu-jammy/Dockerfile diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 52156ce..daeb848 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -20,7 +20,7 @@ jobs: go-version: 1.21 - name: Build - run: go build -v ./... + run: go build cmd - name: Test run: go test -v ./... diff --git a/README.md b/README.md index 7da0f63..3b02dfc 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # Yap -![yap-logo](https://raw.githubusercontent.com/M0Rf30/yap/main/images/yap.png) +![yap-logo](assets/images/logo.png) [![report card](https://img.shields.io/badge/report%20card-a%2B-ff3333.svg?style=flat-square)](http://goreportcard.com/report/M0Rf30/yap) -[![View examples](https://img.shields.io/badge/learn%20by-examples-0077b3.svg?style=flat-square)](https://github.com/M0Rf30/yap/tree/main/examples) +[![View examples](https://img.shields.io/badge/learn%20by-examples-0077b3.svg?style=flat-square)](examples) Yap allows building packages for multiple GNU/Linux distributions with a consistent package spec format. diff --git a/images/yap.png b/assets/images/logo.png similarity index 100% rename from images/yap.png rename to assets/images/logo.png diff --git a/images/yap.svg b/assets/images/logo.svg similarity index 100% rename from images/yap.svg rename to assets/images/logo.svg diff --git a/docker/alpine/Dockerfile b/build/deploy/alpine/Dockerfile similarity index 79% rename from docker/alpine/Dockerfile rename to build/deploy/alpine/Dockerfile index 79eab0c..fdc075e 100644 --- a/docker/alpine/Dockerfile +++ b/build/deploy/alpine/Dockerfile @@ -9,8 +9,14 @@ RUN \ COPY . /project WORKDIR /project RUN \ - go build -buildvcs=false -ldflags "-w -s" -trimpath -mod=readonly -modcacherw -o /usr/bin/; - + go build \ + -buildvcs=false \ + -ldflags "-w -s" \ + -mod=readonly \ + -modcacherw \ + -trimpath \ + -o /usr/bin/yap \ + cmd/yap/main.go FROM docker.io/alpine:latest COPY --from=builder /usr/bin/yap /usr/bin/yap diff --git a/docker/amazon-1/Dockerfile b/build/deploy/amazon-1/Dockerfile similarity index 87% rename from docker/amazon-1/Dockerfile rename to build/deploy/amazon-1/Dockerfile index f0cb48b..34ceabd 100644 --- a/docker/amazon-1/Dockerfile +++ b/build/deploy/amazon-1/Dockerfile @@ -17,7 +17,14 @@ RUN \ COPY . /project WORKDIR /project RUN \ - go build -ldflags "-w -s" -trimpath -mod=readonly -modcacherw -o /usr/bin/; + go build \ + -buildvcs=false \ + -ldflags "-w -s" \ + -mod=readonly \ + -modcacherw \ + -trimpath \ + -o /usr/bin/yap \ + cmd/yap/main.go FROM docker.io/amazonlinux:1 COPY --from=builder /usr/bin/yap /usr/bin/yap diff --git a/docker/amazon-2/Dockerfile b/build/deploy/amazon-2/Dockerfile similarity index 87% rename from docker/amazon-2/Dockerfile rename to build/deploy/amazon-2/Dockerfile index a8210f3..0a85b5b 100644 --- a/docker/amazon-2/Dockerfile +++ b/build/deploy/amazon-2/Dockerfile @@ -17,7 +17,14 @@ RUN \ COPY . /project WORKDIR /project RUN \ - go build -ldflags "-w -s" -trimpath -mod=readonly -modcacherw -o /usr/bin/; + go build \ + -buildvcs=false \ + -ldflags "-w -s" \ + -mod=readonly \ + -modcacherw \ + -trimpath \ + -o /usr/bin/yap \ + cmd/yap/main.go FROM docker.io/amazonlinux:2 COPY --from=builder /usr/bin/yap /usr/bin/yap diff --git a/docker/arch/Dockerfile b/build/deploy/arch/Dockerfile similarity index 81% rename from docker/arch/Dockerfile rename to build/deploy/arch/Dockerfile index b269c6f..0720b73 100644 --- a/docker/arch/Dockerfile +++ b/build/deploy/arch/Dockerfile @@ -10,7 +10,14 @@ RUN \ COPY . /project WORKDIR /project RUN \ - go build -ldflags "-w -s" -trimpath -mod=readonly -modcacherw -o /usr/bin/ + go build \ + -buildvcs=false \ + -ldflags "-w -s" \ + -mod=readonly \ + -modcacherw \ + -trimpath \ + -o /usr/bin/yap \ + cmd/yap/main.go FROM docker.io/archlinux:base COPY --from=builder /usr/bin/yap /usr/bin/yap diff --git a/docker/debian-buster/Dockerfile b/build/deploy/debian-buster/Dockerfile similarity index 89% rename from docker/debian-buster/Dockerfile rename to build/deploy/debian-buster/Dockerfile index 723c3ca..5776993 100644 --- a/docker/debian-buster/Dockerfile +++ b/build/deploy/debian-buster/Dockerfile @@ -19,7 +19,14 @@ RUN \ COPY . /project WORKDIR /project RUN \ - go build -ldflags "-w -s" -trimpath -mod=readonly -modcacherw -o /usr/bin/; + go build \ + -buildvcs=false \ + -ldflags "-w -s" \ + -mod=readonly \ + -modcacherw \ + -trimpath \ + -o /usr/bin/yap \ + cmd/yap/main.go FROM docker.io/debian:buster COPY --from=builder /usr/bin/yap /usr/bin/yap diff --git a/docker/debian-jessie/Dockerfile b/build/deploy/debian-jessie/Dockerfile similarity index 89% rename from docker/debian-jessie/Dockerfile rename to build/deploy/debian-jessie/Dockerfile index de83b4d..fad294f 100644 --- a/docker/debian-jessie/Dockerfile +++ b/build/deploy/debian-jessie/Dockerfile @@ -19,7 +19,14 @@ RUN \ COPY . /project WORKDIR /project RUN \ - go build -ldflags "-w -s" -trimpath -mod=readonly -modcacherw -o /usr/bin/; + go build \ + -buildvcs=false \ + -ldflags "-w -s" \ + -mod=readonly \ + -modcacherw \ + -trimpath \ + -o /usr/bin/yap \ + cmd/yap/main.go FROM docker.io/debian:jessie COPY --from=builder /usr/bin/yap /usr/bin/yap diff --git a/docker/debian-stretch/Dockerfile b/build/deploy/debian-stretch/Dockerfile similarity index 89% rename from docker/debian-stretch/Dockerfile rename to build/deploy/debian-stretch/Dockerfile index 73f7eff..2f58994 100644 --- a/docker/debian-stretch/Dockerfile +++ b/build/deploy/debian-stretch/Dockerfile @@ -19,7 +19,14 @@ RUN \ COPY . /project WORKDIR /project RUN \ - go build -ldflags "-w -s" -trimpath -mod=readonly -modcacherw -o /usr/bin/; + go build \ + -buildvcs=false \ + -ldflags "-w -s" \ + -mod=readonly \ + -modcacherw \ + -trimpath \ + -o /usr/bin/yap \ + cmd/yap/main.go FROM docker.io/debian:stretch COPY --from=builder /usr/bin/yap /usr/bin/yap diff --git a/docker/fedora-38/Dockerfile b/build/deploy/fedora-38/Dockerfile similarity index 87% rename from docker/fedora-38/Dockerfile rename to build/deploy/fedora-38/Dockerfile index a54cbbb..31253c1 100644 --- a/docker/fedora-38/Dockerfile +++ b/build/deploy/fedora-38/Dockerfile @@ -17,7 +17,14 @@ RUN \ COPY . /project WORKDIR /project RUN \ - go build -ldflags "-w -s" -trimpath -mod=readonly -modcacherw -o /usr/bin/; + go build \ + -buildvcs=false \ + -ldflags "-w -s" \ + -mod=readonly \ + -modcacherw \ + -trimpath \ + -o /usr/bin/yap \ + cmd/yap/main.go FROM docker.io/fedora:38 COPY --from=builder /usr/bin/yap /usr/bin/yap diff --git a/docker/opensuse-tubleweed/Dockerfile b/build/deploy/opensuse-tubleweed/Dockerfile similarity index 81% rename from docker/opensuse-tubleweed/Dockerfile rename to build/deploy/opensuse-tubleweed/Dockerfile index 3854924..fb74e6f 100644 --- a/docker/opensuse-tubleweed/Dockerfile +++ b/build/deploy/opensuse-tubleweed/Dockerfile @@ -10,7 +10,14 @@ RUN \ COPY . /project WORKDIR /project RUN \ - go build -ldflags "-w -s" -trimpath -mod=readonly -modcacherw -o /usr/bin/ + go build \ + -buildvcs=false \ + -ldflags "-w -s" \ + -mod=readonly \ + -modcacherw \ + -trimpath \ + -o /usr/bin/yap \ + cmd/yap/main.go FROM docker.io/opensuse/tumbleweed:latest COPY --from=builder /usr/bin/yap /usr/bin/yap diff --git a/docker/rocky-8/Dockerfile b/build/deploy/rocky-8/Dockerfile similarity index 87% rename from docker/rocky-8/Dockerfile rename to build/deploy/rocky-8/Dockerfile index 5cedfd9..bdc2be6 100644 --- a/docker/rocky-8/Dockerfile +++ b/build/deploy/rocky-8/Dockerfile @@ -17,7 +17,14 @@ RUN \ COPY . /project WORKDIR /project RUN \ - go build -ldflags "-w -s" -trimpath -mod=readonly -modcacherw -o /usr/bin/; + go build \ + -buildvcs=false \ + -ldflags "-w -s" \ + -mod=readonly \ + -modcacherw \ + -trimpath \ + -o /usr/bin/yap \ + cmd/yap/main.go FROM docker.io/rockylinux/rockylinux:8 COPY --from=builder /usr/bin/yap /usr/bin/yap diff --git a/docker/rocky-9/Dockerfile b/build/deploy/rocky-9/Dockerfile similarity index 87% rename from docker/rocky-9/Dockerfile rename to build/deploy/rocky-9/Dockerfile index 60cc109..07f2926 100644 --- a/docker/rocky-9/Dockerfile +++ b/build/deploy/rocky-9/Dockerfile @@ -17,7 +17,14 @@ RUN \ COPY . /project WORKDIR /project RUN \ - go build -ldflags "-w -s" -trimpath -mod=readonly -modcacherw -o /usr/bin/; + go build \ + -buildvcs=false \ + -ldflags "-w -s" \ + -mod=readonly \ + -modcacherw \ + -trimpath \ + -o /usr/bin/yap \ + cmd/yap/main.go FROM docker.io/rockylinux/rockylinux:9 COPY --from=builder /usr/bin/yap /usr/bin/yap diff --git a/docker/ubuntu-bionic/Dockerfile b/build/deploy/ubuntu-bionic/Dockerfile similarity index 89% rename from docker/ubuntu-bionic/Dockerfile rename to build/deploy/ubuntu-bionic/Dockerfile index 86f803d..3207996 100644 --- a/docker/ubuntu-bionic/Dockerfile +++ b/build/deploy/ubuntu-bionic/Dockerfile @@ -19,7 +19,14 @@ RUN \ COPY . /project WORKDIR /project RUN \ - go build -ldflags "-w -s" -trimpath -mod=readonly -modcacherw -o /usr/bin/; + go build \ + -buildvcs=false \ + -ldflags "-w -s" \ + -mod=readonly \ + -modcacherw \ + -trimpath \ + -o /usr/bin/yap \ + cmd/yap/main.go FROM docker.io/ubuntu:bionic COPY --from=builder /usr/bin/yap /usr/bin/yap diff --git a/docker/ubuntu-focal/Dockerfile b/build/deploy/ubuntu-focal/Dockerfile similarity index 89% rename from docker/ubuntu-focal/Dockerfile rename to build/deploy/ubuntu-focal/Dockerfile index 522dca7..367433a 100644 --- a/docker/ubuntu-focal/Dockerfile +++ b/build/deploy/ubuntu-focal/Dockerfile @@ -19,7 +19,14 @@ RUN \ COPY . /project WORKDIR /project RUN \ - go build -ldflags "-w -s" -trimpath -mod=readonly -modcacherw -o /usr/bin/; + go build \ + -buildvcs=false \ + -ldflags "-w -s" \ + -mod=readonly \ + -modcacherw \ + -trimpath \ + -o /usr/bin/yap \ + cmd/yap/main.go FROM docker.io/ubuntu:focal COPY --from=builder /usr/bin/yap /usr/bin/yap diff --git a/docker/ubuntu-jammy/Dockerfile b/build/deploy/ubuntu-jammy/Dockerfile similarity index 89% rename from docker/ubuntu-jammy/Dockerfile rename to build/deploy/ubuntu-jammy/Dockerfile index 59c524c..d98db4b 100644 --- a/docker/ubuntu-jammy/Dockerfile +++ b/build/deploy/ubuntu-jammy/Dockerfile @@ -19,7 +19,14 @@ RUN \ COPY . /project WORKDIR /project RUN \ - go build -ldflags "-w -s" -trimpath -mod=readonly -modcacherw -o /usr/bin/; + go build \ + -buildvcs=false \ + -ldflags "-w -s" \ + -mod=readonly \ + -modcacherw \ + -trimpath \ + -o /usr/bin/yap \ + cmd/yap/main.go FROM docker.io/ubuntu:jammy COPY --from=builder /usr/bin/yap /usr/bin/yap diff --git a/cmd/build.go b/cmd/yap/command/build.go similarity index 92% rename from cmd/build.go rename to cmd/yap/command/build.go index 8525a70..6a211cf 100644 --- a/cmd/build.go +++ b/cmd/yap/command/build.go @@ -1,4 +1,4 @@ -package cmd +package command import ( "fmt" @@ -6,10 +6,10 @@ import ( "path/filepath" "strings" - "github.com/M0Rf30/yap/constants" - "github.com/M0Rf30/yap/parser" - "github.com/M0Rf30/yap/pkgbuild" - "github.com/M0Rf30/yap/project" + "github.com/M0Rf30/yap/pkg/constants" + "github.com/M0Rf30/yap/pkg/parser" + "github.com/M0Rf30/yap/pkg/pkgbuild" + "github.com/M0Rf30/yap/pkg/project" "github.com/spf13/cobra" ) diff --git a/cmd/completion.go b/cmd/yap/command/completion.go similarity index 99% rename from cmd/completion.go rename to cmd/yap/command/completion.go index c1af65b..10c428a 100644 --- a/cmd/completion.go +++ b/cmd/yap/command/completion.go @@ -1,4 +1,4 @@ -package cmd +package command import ( "log" diff --git a/cmd/container.go b/cmd/yap/command/container.go similarity index 88% rename from cmd/container.go rename to cmd/yap/command/container.go index e795647..7ab3695 100644 --- a/cmd/container.go +++ b/cmd/yap/command/container.go @@ -1,9 +1,9 @@ -package cmd +package command import ( "log" - "github.com/M0Rf30/yap/utils" + "github.com/M0Rf30/yap/pkg/utils" "github.com/spf13/cobra" ) diff --git a/cmd/listTargets.go b/cmd/yap/command/list_targets.go similarity index 89% rename from cmd/listTargets.go rename to cmd/yap/command/list_targets.go index 4809cd0..728606f 100644 --- a/cmd/listTargets.go +++ b/cmd/yap/command/list_targets.go @@ -1,10 +1,10 @@ -package cmd +package command import ( "fmt" "strings" - "github.com/M0Rf30/yap/constants" + "github.com/M0Rf30/yap/pkg/constants" "github.com/spf13/cobra" ) diff --git a/cmd/prepare.go b/cmd/yap/command/prepare.go similarity index 88% rename from cmd/prepare.go rename to cmd/yap/command/prepare.go index de6a819..4396b17 100644 --- a/cmd/prepare.go +++ b/cmd/yap/command/prepare.go @@ -1,14 +1,14 @@ -package cmd +package command import ( "fmt" "log" "strings" - "github.com/M0Rf30/yap/constants" - "github.com/M0Rf30/yap/packer" - "github.com/M0Rf30/yap/pkgbuild" - "github.com/M0Rf30/yap/project" + "github.com/M0Rf30/yap/pkg/constants" + "github.com/M0Rf30/yap/pkg/packer" + "github.com/M0Rf30/yap/pkg/pkgbuild" + "github.com/M0Rf30/yap/pkg/project" "github.com/spf13/cobra" ) diff --git a/cmd/root.go b/cmd/yap/command/root.go similarity index 97% rename from cmd/root.go rename to cmd/yap/command/root.go index 86d8922..84baee2 100644 --- a/cmd/root.go +++ b/cmd/yap/command/root.go @@ -1,4 +1,4 @@ -package cmd +package command import ( "github.com/spf13/cobra" diff --git a/cmd/version.go b/cmd/yap/command/version.go similarity index 95% rename from cmd/version.go rename to cmd/yap/command/version.go index e362cf4..6a49e8c 100644 --- a/cmd/version.go +++ b/cmd/yap/command/version.go @@ -1,4 +1,4 @@ -package cmd +package command import ( "fmt" diff --git a/cmd/yap/main.go b/cmd/yap/main.go new file mode 100644 index 0000000..d69414c --- /dev/null +++ b/cmd/yap/main.go @@ -0,0 +1,7 @@ +package main + +import "github.com/M0Rf30/yap/cmd/yap/command" + +func main() { + command.Execute() +} diff --git a/examples/yap/PKGBUILD b/examples/yap/PKGBUILD index 2f11f99..0a80abb 100644 --- a/examples/yap/PKGBUILD +++ b/examples/yap/PKGBUILD @@ -37,7 +37,7 @@ build() { -buildvcs=false \ -ldflags="-w -s -linkmode=external \ -X main.version=${pkgver}" \ - . + cmd } package() { diff --git a/main.go b/main.go deleted file mode 100644 index 39da214..0000000 --- a/main.go +++ /dev/null @@ -1,7 +0,0 @@ -package main - -import "github.com/M0Rf30/yap/cmd" - -func main() { - cmd.Execute() -} diff --git a/apk/apk.go b/pkg/apk/apk.go similarity index 83% rename from apk/apk.go rename to pkg/apk/apk.go index f7c24af..5132dd4 100644 --- a/apk/apk.go +++ b/pkg/apk/apk.go @@ -3,8 +3,8 @@ package apk import ( "path/filepath" - "github.com/M0Rf30/yap/pkgbuild" - "github.com/M0Rf30/yap/utils" + "github.com/M0Rf30/yap/pkg/pkgbuild" + "github.com/M0Rf30/yap/pkg/utils" ) type Apk struct { @@ -57,7 +57,11 @@ func (a *Apk) Install(artifactsPath string) error { pkgFilePath := filepath.Join(artifactsPath, a.PKGBUILD.PkgName, arch, pkgName) - if err := utils.Exec("", "apk", "add", "--allow-untrusted", pkgFilePath); err != nil { + if err := utils.Exec("", + "apk", + "add", + "--allow-untrusted", + pkgFilePath); err != nil { return err } } @@ -110,12 +114,20 @@ func (a *Apk) Update() error { } func (a *Apk) apkBuild(artifactsPath string) error { - err := utils.Exec(a.apkDir, "abuild-keygen", "-n", "-a") + err := utils.Exec(a.apkDir, + "abuild-keygen", + "-n", + "-a") if err != nil { return err } - err = utils.Exec(a.apkDir, "abuild", "-F", "-K", "-P", artifactsPath) + err = utils.Exec(a.apkDir, + "abuild", + "-F", + "-K", + "-P", + artifactsPath) if err != nil { return err } @@ -129,7 +141,9 @@ func (a *Apk) makePackerDir() error { return err } - err = utils.ExistsMakeDir(a.apkDir + "/pkg/" + a.PKGBUILD.PkgName) + err = utils.ExistsMakeDir(a.apkDir + + "/pkg/" + + a.PKGBUILD.PkgName) if err != nil { return err } diff --git a/apk/constants.go b/pkg/apk/constants.go similarity index 100% rename from apk/constants.go rename to pkg/apk/constants.go diff --git a/builder/builder.go b/pkg/builder/builder.go similarity index 92% rename from builder/builder.go rename to pkg/builder/builder.go index e3d2efc..aa801e2 100644 --- a/builder/builder.go +++ b/pkg/builder/builder.go @@ -3,10 +3,10 @@ package builder import ( "fmt" - "github.com/M0Rf30/yap/constants" - "github.com/M0Rf30/yap/pkgbuild" - "github.com/M0Rf30/yap/source" - "github.com/M0Rf30/yap/utils" + "github.com/M0Rf30/yap/pkg/constants" + "github.com/M0Rf30/yap/pkg/pkgbuild" + "github.com/M0Rf30/yap/pkg/source" + "github.com/M0Rf30/yap/pkg/utils" ) type Builder struct { diff --git a/builder/utils.go b/pkg/builder/utils.go similarity index 100% rename from builder/utils.go rename to pkg/builder/utils.go diff --git a/constants/constants.go b/pkg/constants/constants.go similarity index 98% rename from constants/constants.go rename to pkg/constants/constants.go index a4c86c9..8bb7c94 100644 --- a/constants/constants.go +++ b/pkg/constants/constants.go @@ -5,7 +5,7 @@ import ( "os" "strings" - "github.com/M0Rf30/yap/set" + "github.com/M0Rf30/yap/pkg/set" ) const ( diff --git a/debian/constants.go b/pkg/debian/constants.go similarity index 100% rename from debian/constants.go rename to pkg/debian/constants.go diff --git a/debian/debian.go b/pkg/debian/debian.go similarity index 94% rename from debian/debian.go rename to pkg/debian/debian.go index a4f61c8..8de5834 100644 --- a/debian/debian.go +++ b/pkg/debian/debian.go @@ -8,11 +8,11 @@ import ( "strings" "text/template" - "github.com/M0Rf30/yap/builder" - "github.com/M0Rf30/yap/constants" - "github.com/M0Rf30/yap/options" - "github.com/M0Rf30/yap/pkgbuild" - "github.com/M0Rf30/yap/utils" + "github.com/M0Rf30/yap/pkg/builder" + "github.com/M0Rf30/yap/pkg/constants" + "github.com/M0Rf30/yap/pkg/options" + "github.com/M0Rf30/yap/pkg/pkgbuild" + "github.com/M0Rf30/yap/pkg/utils" "github.com/otiai10/copy" ) @@ -132,7 +132,10 @@ func (d *Debian) dpkgDeb(artifactPath string) error { d.PKGBUILD.PkgName, d.PKGBUILD.PkgVer, d.PKGBUILD.PkgRel, arch)) - err = utils.Exec("", "dpkg-deb", "-b", d.PKGBUILD.PackageDir, artifactFilePath) + err = utils.Exec("", + "dpkg-deb", + "-b", + d.PKGBUILD.PackageDir, artifactFilePath) if err != nil { return err diff --git a/options/strip.go b/pkg/options/strip.go similarity index 100% rename from options/strip.go rename to pkg/options/strip.go diff --git a/packer/packer.go b/pkg/packer/packer.go similarity index 69% rename from packer/packer.go rename to pkg/packer/packer.go index d9786ce..c02cbf8 100644 --- a/packer/packer.go +++ b/pkg/packer/packer.go @@ -4,19 +4,19 @@ import ( "fmt" "os" - "github.com/M0Rf30/yap/apk" - "github.com/M0Rf30/yap/constants" - "github.com/M0Rf30/yap/debian" - "github.com/M0Rf30/yap/pacman" - "github.com/M0Rf30/yap/pkgbuild" - "github.com/M0Rf30/yap/redhat" + "github.com/M0Rf30/yap/pkg/apk" + "github.com/M0Rf30/yap/pkg/constants" + "github.com/M0Rf30/yap/pkg/debian" + "github.com/M0Rf30/yap/pkg/pacman" + "github.com/M0Rf30/yap/pkg/pkgbuild" + "github.com/M0Rf30/yap/pkg/redhat" ) type Packer interface { - Prepare([]string) error - Build(string) error - Install(string) error - PrepareEnvironment(bool) error + Prepare(depends []string) error + Build(output string) error + Install(output string) error + PrepareEnvironment(flag bool) error Update() error } diff --git a/pacman/constants.go b/pkg/pacman/constants.go similarity index 100% rename from pacman/constants.go rename to pkg/pacman/constants.go diff --git a/pacman/pacman.go b/pkg/pacman/pacman.go similarity index 91% rename from pacman/pacman.go rename to pkg/pacman/pacman.go index 802e5a3..94711ab 100644 --- a/pacman/pacman.go +++ b/pkg/pacman/pacman.go @@ -3,8 +3,8 @@ package pacman import ( "path/filepath" - "github.com/M0Rf30/yap/pkgbuild" - "github.com/M0Rf30/yap/utils" + "github.com/M0Rf30/yap/pkg/pkgbuild" + "github.com/M0Rf30/yap/pkg/utils" ) type Pacman struct { @@ -51,7 +51,11 @@ func (p *Pacman) Install(artifactsPath string) error { pkgFilePath := filepath.Join(artifactsPath, pkgName) - if err := utils.Exec("", "pacman", "-U", "--noconfirm", pkgFilePath); err != nil { + if err := utils.Exec("", + "pacman", + "-U", + "--noconfirm", + pkgFilePath); err != nil { return err } } diff --git a/parser/parser.go b/pkg/parser/parser.go similarity index 95% rename from parser/parser.go rename to pkg/parser/parser.go index fcdddb2..3dbfd76 100644 --- a/parser/parser.go +++ b/pkg/parser/parser.go @@ -5,9 +5,9 @@ import ( "os" "path/filepath" - "github.com/M0Rf30/yap/constants" - "github.com/M0Rf30/yap/pkgbuild" - "github.com/M0Rf30/yap/utils" + "github.com/M0Rf30/yap/pkg/constants" + "github.com/M0Rf30/yap/pkg/pkgbuild" + "github.com/M0Rf30/yap/pkg/utils" "github.com/otiai10/copy" "mvdan.cc/sh/v3/shell" "mvdan.cc/sh/v3/syntax" diff --git a/pkgbuild/pkgbuild.go b/pkg/pkgbuild/pkgbuild.go similarity index 99% rename from pkgbuild/pkgbuild.go rename to pkg/pkgbuild/pkgbuild.go index 94b4c49..dfe0e61 100644 --- a/pkgbuild/pkgbuild.go +++ b/pkg/pkgbuild/pkgbuild.go @@ -9,8 +9,8 @@ import ( "strings" "text/template" - "github.com/M0Rf30/yap/constants" - "github.com/M0Rf30/yap/utils" + "github.com/M0Rf30/yap/pkg/constants" + "github.com/M0Rf30/yap/pkg/utils" "mvdan.cc/sh/v3/shell" ) diff --git a/project/project.go b/pkg/project/project.go similarity index 94% rename from project/project.go rename to pkg/project/project.go index 9b9ece4..862e3b1 100644 --- a/project/project.go +++ b/pkg/project/project.go @@ -7,12 +7,12 @@ import ( "os" "path/filepath" - "github.com/M0Rf30/yap/builder" - "github.com/M0Rf30/yap/constants" - "github.com/M0Rf30/yap/packer" - "github.com/M0Rf30/yap/parser" - "github.com/M0Rf30/yap/pkgbuild" - "github.com/M0Rf30/yap/utils" + "github.com/M0Rf30/yap/pkg/builder" + "github.com/M0Rf30/yap/pkg/constants" + "github.com/M0Rf30/yap/pkg/packer" + "github.com/M0Rf30/yap/pkg/parser" + "github.com/M0Rf30/yap/pkg/pkgbuild" + "github.com/M0Rf30/yap/pkg/utils" "github.com/go-playground/validator/v10" ) @@ -211,7 +211,9 @@ func (mpc *MultipleProject) populateProjects(distro, release, path string) error var projects = make([]*Project, 0) for _, child := range mpc.Projects { - pkgbuildFile, err := parser.ParseFile(distro, release, filepath.Join(mpc.BuildDir, child.Name), + pkgbuildFile, err := parser.ParseFile(distro, + release, + filepath.Join(mpc.BuildDir, child.Name), filepath.Join(path, child.Name)) if err != nil { return err diff --git a/project/project_test.go b/pkg/project/project_test.go similarity index 93% rename from project/project_test.go rename to pkg/project/project_test.go index a740307..6446c13 100644 --- a/project/project_test.go +++ b/pkg/project/project_test.go @@ -5,8 +5,8 @@ import ( "path/filepath" "testing" - "github.com/M0Rf30/yap/project" - "github.com/stretchr/testify/assert" + "github.com/M0Rf30/yap/pkg/project" + "github.com/stretchr/testify/require" ) const examplePkgbuild = `pkgname="httpserver" @@ -37,7 +37,7 @@ build() { mv "${pkgname}-${pkgver}" "go/src" cd "go/src/${pkgname}-${pkgver}" go get - go build -a + go build cmd } package() { @@ -60,7 +60,7 @@ func TestBuildMultipleProjectFromJSON(t *testing.T) { prj1 := filepath.Join(testDir, "project1", "PKGBUILD") prj2 := filepath.Join(testDir, "project2", "PKGBUILD") - assert.NoError(t, os.WriteFile(packageRaw, []byte(`{ + require.NoError(t, os.WriteFile(packageRaw, []byte(`{ "name": "A test", "description": "The test description", "buildDir": "/tmp/", @@ -111,5 +111,5 @@ func TestBuildMultipleProjectFromJSON(t *testing.T) { var mpc = project.MultipleProject{} err = mpc.MultiProject("ubuntu", "", testDir) - assert.NoError(t, err) + require.NoError(t, err) } diff --git a/redhat/constants.go b/pkg/redhat/constants.go similarity index 100% rename from redhat/constants.go rename to pkg/redhat/constants.go diff --git a/redhat/redhat.go b/pkg/redhat/redhat.go similarity index 81% rename from redhat/redhat.go rename to pkg/redhat/redhat.go index 4987183..f8b00a3 100644 --- a/redhat/redhat.go +++ b/pkg/redhat/redhat.go @@ -6,9 +6,9 @@ import ( "path/filepath" "strings" - "github.com/M0Rf30/yap/pkgbuild" - "github.com/M0Rf30/yap/set" - "github.com/M0Rf30/yap/utils" + "github.com/M0Rf30/yap/pkg/pkgbuild" + "github.com/M0Rf30/yap/pkg/set" + "github.com/M0Rf30/yap/pkg/utils" "github.com/otiai10/copy" ) @@ -57,7 +57,8 @@ func (r *Redhat) Build(artifactsPath string) error { return err } - err = r.PKGBUILD.CreateSpec(filepath.Join(r.specsDir, r.PKGBUILD.PkgName+".spec"), specFile) + err = r.PKGBUILD.CreateSpec(filepath.Join(r.specsDir, + r.PKGBUILD.PkgName+".spec"), specFile) if err != nil { return err } @@ -74,7 +75,8 @@ func (r *Redhat) Install(artifactsPath string) error { var err error for _, arch := range r.PKGBUILD.Arch { - pkgName := r.PKGBUILD.PkgName + "-" + + pkgName := r.PKGBUILD.PkgName + + "-" + r.PKGBUILD.PkgVer + "-" + r.PKGBUILD.PkgRel + @@ -84,7 +86,11 @@ func (r *Redhat) Install(artifactsPath string) error { pkgFilePath := filepath.Join(artifactsPath, RPMArchs[arch], pkgName) - if err := utils.Exec("", "yum", "install", "-y", pkgFilePath); err != nil { + if err := utils.Exec("", + "yum", + "install", + "-y", + pkgFilePath); err != nil { return err } } @@ -148,20 +154,23 @@ func (r *Redhat) getFiles() error { var files []string - err := filepath.Walk(r.PKGBUILD.PackageDir, func(path string, info os.FileInfo, err error) error { - if !info.IsDir() { - files = append(files, path) - } + err := filepath.Walk(r.PKGBUILD.PackageDir, + func(path string, + info os.FileInfo, err error) error { + if !info.IsDir() { + files = append(files, path) + } - return err - }) + return err + }) if err != nil { return err } for _, filePath := range files { - if len(filePath) < 1 || strings.Contains(filePath, ".build-id") { + if len(filePath) < 1 || + strings.Contains(filePath, ".build-id") { continue } @@ -200,7 +209,9 @@ func (r *Redhat) getGroup() { func (r *Redhat) getRelease() { if r.PKGBUILD.Codename != "" { - r.PKGBUILD.PkgRel = r.PKGBUILD.PkgRel + RPMDistros[r.PKGBUILD.Distro] + r.PKGBUILD.Codename + r.PKGBUILD.PkgRel = r.PKGBUILD.PkgRel + + RPMDistros[r.PKGBUILD.Distro] + + r.PKGBUILD.Codename } } @@ -234,8 +245,14 @@ func (r *Redhat) makeDirs() error { } func (r *Redhat) rpmBuild() error { - err := utils.Exec(r.specsDir, "rpmbuild", "--define", - "_topdir "+r.redhatDir, "-bb", r.PKGBUILD.PkgName+".spec") + err := utils.Exec(r.specsDir, + "rpmbuild", + "--define", + "_topdir "+ + r.redhatDir, + "-bb", + r.PKGBUILD.PkgName+ + ".spec") if err != nil { return err } diff --git a/set/set.go b/pkg/set/set.go similarity index 100% rename from set/set.go rename to pkg/set/set.go diff --git a/source/source.go b/pkg/source/source.go similarity index 97% rename from source/source.go rename to pkg/source/source.go index f0ba28e..6814d0d 100644 --- a/source/source.go +++ b/pkg/source/source.go @@ -3,6 +3,7 @@ package source import ( "crypto/sha256" "crypto/sha512" + "encoding/hex" "fmt" "hash" "io" @@ -11,8 +12,8 @@ import ( "path/filepath" "strings" - "github.com/M0Rf30/yap/constants" - "github.com/M0Rf30/yap/utils" + "github.com/M0Rf30/yap/pkg/constants" + "github.com/M0Rf30/yap/pkg/utils" ggit "github.com/go-git/go-git/v5" "github.com/go-git/go-git/v5/plumbing" ) @@ -228,8 +229,7 @@ func (src *Source) validate() error { } sum := hashSum.Sum([]byte{}) - - hexSum := fmt.Sprintf("%x", sum) + hexSum := hex.EncodeToString(sum) if hexSum != src.Hash { fmt.Printf("%s❌ :: %sHash verification failed for %s\n", diff --git a/utils/file.go b/pkg/utils/file.go similarity index 98% rename from utils/file.go rename to pkg/utils/file.go index f5c502a..deb464c 100644 --- a/utils/file.go +++ b/pkg/utils/file.go @@ -6,7 +6,7 @@ import ( "path/filepath" "strings" - "github.com/M0Rf30/yap/constants" + "github.com/M0Rf30/yap/pkg/constants" ) func Chmod(path string, perm os.FileMode) error { diff --git a/utils/proc.go b/pkg/utils/proc.go similarity index 100% rename from utils/proc.go rename to pkg/utils/proc.go diff --git a/utils/strings.go b/pkg/utils/strings.go similarity index 98% rename from utils/strings.go rename to pkg/utils/strings.go index aa0c0b0..e5607c2 100644 --- a/utils/strings.go +++ b/pkg/utils/strings.go @@ -7,7 +7,7 @@ import ( "os" "strings" - "github.com/M0Rf30/yap/constants" + "github.com/M0Rf30/yap/pkg/constants" "mvdan.cc/sh/v3/syntax" ) diff --git a/utils/utils.go b/pkg/utils/utils.go similarity index 99% rename from utils/utils.go rename to pkg/utils/utils.go index 341f05f..85feb6a 100644 --- a/utils/utils.go +++ b/pkg/utils/utils.go @@ -9,7 +9,7 @@ import ( "path/filepath" "time" - "github.com/M0Rf30/yap/constants" + "github.com/M0Rf30/yap/pkg/constants" "github.com/cavaliergopher/grab/v3" "github.com/mholt/archiver/v4" )