├── .gitignore ├── main.go ├── go.mod ├── sbom.yml ├── README.md ├── .goreleaser.yml ├── cosign_docker.yml ├── lib.yml ├── .github ├── dependabot.yml └── workflows │ ├── check.yml │ └── release.yml ├── cosign_checksum.yml ├── windows.yml ├── package.yml ├── release.yml ├── package_with_completions_no_aur.yml ├── package_with_completions.yml ├── podman.yml ├── docker.yml └── package_with_completions_and_manpages.yml /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | dist/ 3 | -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | func main() {} 4 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/caarlos0/goreleaserfiles 2 | 3 | go 1.22 4 | -------------------------------------------------------------------------------- /sbom.yml: -------------------------------------------------------------------------------- 1 | # yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json 2 | version: 2 3 | 4 | sboms: 5 | - artifacts: archive 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # goreleaserfiles 2 | 3 | The `.goreleaser.yml` files I use in my projects. 4 | 5 | For context, check [this blog post](https://carlosbecker.com/posts/goreleaser-includes/). 6 | -------------------------------------------------------------------------------- /.goreleaser.yml: -------------------------------------------------------------------------------- 1 | # yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json 2 | version: 2 3 | 4 | includes: 5 | - from_file: 6 | path: ./release.yml 7 | builds: 8 | - skip: true 9 | -------------------------------------------------------------------------------- /cosign_docker.yml: -------------------------------------------------------------------------------- 1 | # yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json 2 | version: 2 3 | 4 | docker_signs: 5 | - cmd: cosign 6 | artifacts: manifests 7 | output: true 8 | args: 9 | - "sign" 10 | - "${artifact}" 11 | - "--yes" 12 | -------------------------------------------------------------------------------- /lib.yml: -------------------------------------------------------------------------------- 1 | # yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json 2 | version: 2 3 | 4 | includes: 5 | - from_url: 6 | url: https://raw.githubusercontent.com/caarlos0/.goreleaserfiles/main/release.yml 7 | before: 8 | hooks: 9 | - go mod tidy 10 | builds: 11 | - skip: true 12 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "gomod" 4 | directory: "/" 5 | schedule: 6 | interval: "daily" 7 | time: "08:00" 8 | labels: 9 | - "dependencies" 10 | - "automerge" 11 | - package-ecosystem: "github-actions" 12 | directory: "/" 13 | schedule: 14 | interval: "daily" 15 | time: "08:00" 16 | labels: 17 | - "dependencies" 18 | -------------------------------------------------------------------------------- /cosign_checksum.yml: -------------------------------------------------------------------------------- 1 | # yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json 2 | version: 2 3 | 4 | checksum: 5 | name_template: "checksums.txt" 6 | 7 | signs: 8 | - cmd: cosign 9 | certificate: "${artifact}.pem" 10 | output: true 11 | artifacts: checksum 12 | args: 13 | - sign-blob 14 | - "--output-certificate=${certificate}" 15 | - "--output-signature=${signature}" 16 | - "${artifact}" 17 | - "--yes" 18 | -------------------------------------------------------------------------------- /windows.yml: -------------------------------------------------------------------------------- 1 | # yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json 2 | version: 2 3 | 4 | variables: 5 | homepage: "" 6 | description: "" 7 | 8 | winget: 9 | - name: "{{.ProjectName}}" 10 | publisher: caarlos0 11 | license: MIT 12 | homepage: "{{ with .Var.homepage }}{{ . }}{{ else }}https://github.com/caarlos0/{{ .ProjectName }}{{ end }}" 13 | short_description: "{{.Var.description}}" 14 | repository: 15 | owner: caarlos0 16 | name: winget-pkgs 17 | branch: "{{.ProjectName}}-{{.Version}}" 18 | pull_request: 19 | enabled: true 20 | draft: true 21 | base: 22 | owner: microsoft 23 | name: winget-pkgs 24 | branch: master 25 | -------------------------------------------------------------------------------- /.github/workflows/check.yml: -------------------------------------------------------------------------------- 1 | name: check 2 | 3 | on: 4 | push: 5 | pull_request: 6 | 7 | jobs: 8 | build: 9 | runs-on: ubuntu-latest 10 | steps: 11 | - uses: actions/checkout@v6 12 | - uses: goreleaser/goreleaser-action@v6 13 | with: 14 | distribution: goreleaser-pro 15 | install-only: true 16 | - name: check 17 | run: | 18 | goreleaser check *.yml 19 | dependabot: 20 | needs: [build] 21 | runs-on: ubuntu-latest 22 | permissions: 23 | pull-requests: write 24 | contents: write 25 | if: ${{ github.actor == 'dependabot[bot]' && github.event_name == 'pull_request'}} 26 | steps: 27 | - id: metadata 28 | uses: dependabot/fetch-metadata@v2 29 | with: 30 | github-token: "${{ secrets.GITHUB_TOKEN }}" 31 | - run: | 32 | gh pr review --approve "$PR_URL" 33 | gh pr merge --squash --auto "$PR_URL" 34 | env: 35 | PR_URL: ${{github.event.pull_request.html_url}} 36 | GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} 37 | -------------------------------------------------------------------------------- /package.yml: -------------------------------------------------------------------------------- 1 | # yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json 2 | version: 2 3 | 4 | variables: 5 | homepage: "" 6 | 7 | nix: 8 | - repository: 9 | owner: caarlos0 10 | name: nur 11 | homepage: "{{ with .Var.homepage }}{{ . }}{{ else }}https://github.com/caarlos0/{{ .ProjectName }}{{ end }}" 12 | description: "{{ .Var.description }}" 13 | license: mit 14 | 15 | homebrew_casks: 16 | - repository: 17 | owner: caarlos0 18 | name: homebrew-tap 19 | homepage: "{{ with .Var.homepage }}{{ . }}{{ else }}https://github.com/caarlos0/{{ .ProjectName }}{{ end }}" 20 | url: 21 | verified: github.com/caarlos0/ 22 | description: "{{ .Var.description }}" 23 | 24 | nfpms: 25 | - homepage: "{{ with .Var.homepage }}{{ . }}{{ else }}https://github.com/caarlos0/{{ .ProjectName }}{{ end }}" 26 | description: "{{ .Var.description }}" 27 | maintainer: Carlos Alexandro Becker 28 | license: MIT 29 | vendor: Becker Software 30 | formats: 31 | - apk 32 | - deb 33 | - rpm 34 | -------------------------------------------------------------------------------- /release.yml: -------------------------------------------------------------------------------- 1 | # yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json 2 | version: 2 3 | 4 | snapshot: 5 | version_template: "{{ incpatch .Version }}-next" 6 | 7 | changelog: 8 | sort: asc 9 | use: github 10 | filters: 11 | exclude: 12 | - "^test:" 13 | - "^chore" 14 | - "merge conflict" 15 | - Merge pull request 16 | - Merge remote-tracking branch 17 | - Merge branch 18 | - go mod tidy 19 | groups: 20 | - title: Dependency updates 21 | regexp: "^.*feat\\(deps\\)*:+.*$" 22 | order: 300 23 | - title: "New Features" 24 | regexp: "^.*feat[(\\w)]*:+.*$" 25 | order: 100 26 | - title: "Bug fixes" 27 | regexp: "^.*fix[(\\w)]*:+.*$" 28 | order: 200 29 | - title: "Documentation updates" 30 | regexp: "^.*docs[(\\w)]*:+.*$" 31 | order: 400 32 | - title: Other work 33 | order: 9999 34 | 35 | release: 36 | footer: | 37 | {{- if .Var.repository }} 38 | **Full Changelog**: {{ .Var.repository }}/compare/{{ .PreviousTag }}...{{ .Tag }} 39 | {{- end }} 40 | 41 | --- 42 | 43 | _Released with [GoReleaser Pro](https://goreleaser.com/pro)!_ 44 | 45 | announce: 46 | skip: "{{gt .Patch 0}}" 47 | 48 | variables: 49 | repository: "" 50 | -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- 1 | name: release 2 | 3 | on: 4 | workflow_call: 5 | inputs: 6 | docker_username: 7 | required: true 8 | type: string 9 | secrets: 10 | docker_password: 11 | required: true 12 | gh_pat: 13 | required: true 14 | 15 | jobs: 16 | release: 17 | runs-on: ubuntu-latest 18 | permissions: 19 | contents: write 20 | id-token: write 21 | packages: write 22 | steps: 23 | - uses: actions/checkout@v6 24 | with: 25 | fetch-depth: 0 26 | - uses: actions/setup-go@v6 27 | with: 28 | go-version: 1.18 29 | - uses: actions/cache@v5 30 | with: 31 | path: ~/go/pkg/mod 32 | key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} 33 | restore-keys: | 34 | ${{ runner.os }}-go- 35 | - uses: sigstore/cosign-installer@v4.0.0 36 | - uses: anchore/sbom-action/download-syft@v0.20.11 37 | - uses: docker/setup-qemu-action@v3 38 | - uses: docker/setup-buildx-action@v3 39 | - uses: docker/login-action@v3 40 | with: 41 | registry: ghcr.io 42 | username: ${{ github.repository_owner }} 43 | password: ${{ secrets.GITHUB_TOKEN }} 44 | - uses: docker/login-action@v3 45 | with: 46 | username: ${{ inputs.docker_username }} 47 | password: ${{ secrets.docker_password }} 48 | - uses: goreleaser/goreleaser-action@v6 49 | with: 50 | version: latest 51 | args: release --clean 52 | env: 53 | GITHUB_TOKEN: ${{ secrets.gh_pat }} 54 | -------------------------------------------------------------------------------- /package_with_completions_no_aur.yml: -------------------------------------------------------------------------------- 1 | # yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json 2 | version: 2 3 | 4 | variables: 5 | aur_project_name: "" 6 | homepage: "" 7 | 8 | before: 9 | hooks: 10 | - ./scripts/completions.sh 11 | 12 | nix: 13 | - repository: 14 | owner: caarlos0 15 | name: nur 16 | homepage: "{{ with .Var.homepage }}{{ . }}{{ else }}https://github.com/caarlos0/{{ .ProjectName }}{{ end }}" 17 | description: "{{ .Var.description }}" 18 | license: mit 19 | extra_install: |- 20 | installShellCompletion ./completions/* 21 | 22 | homebrew_casks: 23 | - repository: 24 | owner: caarlos0 25 | name: homebrew-tap 26 | homepage: "{{ with .Var.homepage }}{{ . }}{{ else }}https://github.com/caarlos0/{{ .ProjectName }}{{ end }}" 27 | url: 28 | verified: github.com/caarlos0/ 29 | description: "{{ .Var.description }}" 30 | manpages: 31 | - "manpages/{{ .ProjectName }}.1.gz" 32 | completions: 33 | bash: "completions/{{ .ProjectName }}.bash" 34 | zsh: "completions/{{ .ProjectName }}.zsh" 35 | fish: "completions/{{ .ProjectName }}.fish" 36 | 37 | nfpms: 38 | - maintainer: Carlos Alexandro Becker 39 | file_name_template: "{{ .ConventionalFileName }}" 40 | description: "{{ .Var.description }}" 41 | homepage: "{{ with .Var.homepage }}{{ . }}{{ else }}https://github.com/caarlos0/{{ .ProjectName }}{{ end }}" 42 | license: MIT 43 | contents: 44 | - src: ./completions/{{ .ProjectName }}.bash 45 | dst: /etc/bash_completion.d/{{ .ProjectName }} 46 | - src: ./completions/{{ .ProjectName }}.fish 47 | dst: /usr/share/fish/completions/{{ .ProjectName }}.fish 48 | - src: ./completions/{{ .ProjectName }}.zsh 49 | dst: /usr/local/share/zsh/site-functions/_{{ .ProjectName }} 50 | formats: 51 | - deb 52 | - rpm 53 | - apk 54 | -------------------------------------------------------------------------------- /package_with_completions.yml: -------------------------------------------------------------------------------- 1 | # yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json 2 | version: 2 3 | 4 | variables: 5 | aur_project_name: "" 6 | homepage: "" 7 | 8 | includes: 9 | - from_url: 10 | url: https://raw.githubusercontent.com/caarlos0/.goreleaserfiles/main/package_with_completions_no_aur.yml 11 | 12 | # TODO: maybe leave name template as default? 13 | archives: 14 | - name_template: "{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}" 15 | files: 16 | - README.md 17 | - LICENSE.md 18 | - completions/* 19 | format_overrides: 20 | - goos: windows 21 | formats: [zip] 22 | 23 | aurs: 24 | - maintainers: ["Carlos Alexandro Becker "] 25 | description: "{{ .Var.description }}" 26 | name: "{{ with .Var.aur_project_name }}{{ . }}{{ else }}{{ .ProjectName }}{{ end }}-bin" 27 | homepage: "{{ with .Var.homepage }}{{ . }}{{ else }}https://github.com/caarlos0/{{ .ProjectName }}{{ end }}" 28 | license: MIT 29 | private_key: "{{ .Env.AUR_KEY }}" 30 | git_url: "ssh://aur@aur.archlinux.org/{{ with .Var.aur_project_name }}{{ . }}{{ else }}{{ .ProjectName }}{{ end }}-bin.git" 31 | package: |- 32 | # bin 33 | install -Dm755 "./{{ .ProjectName }}" "${pkgdir}/usr/bin/{{ .ProjectName }}" 34 | # license 35 | install -Dm644 "./LICENSE.md" "${pkgdir}/usr/share/licenses/{{ .ProjectName }}/LICENSE" 36 | # completions 37 | mkdir -p "${pkgdir}/usr/share/bash-completion/completions/" 38 | mkdir -p "${pkgdir}/usr/share/zsh/site-functions/" 39 | mkdir -p "${pkgdir}/usr/share/fish/vendor_completions.d/" 40 | install -Dm644 "./completions/{{ .ProjectName }}.bash" "${pkgdir}/usr/share/bash-completion/completions/{{ .ProjectName }}" 41 | install -Dm644 "./completions/{{ .ProjectName }}.zsh" "${pkgdir}/usr/share/zsh/site-functions/_{{ .ProjectName }}" 42 | install -Dm644 "./completions/{{ .ProjectName }}.fish" "${pkgdir}/usr/share/fish/vendor_completions.d/{{ .ProjectName }}.fish" 43 | -------------------------------------------------------------------------------- /podman.yml: -------------------------------------------------------------------------------- 1 | # yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json 2 | version: 2 3 | 4 | dockers: 5 | - image_templates: 6 | - "ghcr.io/caarlos0/{{ .ProjectName }}:{{ .Tag }}-amd64" 7 | - "caarlos0/{{ .ProjectName }}:{{ .Tag }}-amd64" 8 | dockerfile: Dockerfile 9 | use: podman 10 | build_flag_templates: 11 | - "--pull" 12 | - "--label=org.opencontainers.image.created={{.Date}}" 13 | - "--label=org.opencontainers.image.name={{.ProjectName}}" 14 | - "--label=org.opencontainers.image.revision={{.FullCommit}}" 15 | - "--label=org.opencontainers.image.version={{.Version}}" 16 | - "--label=org.opencontainers.image.source={{ with .repository }}{{ . }}{{ else }}https://github.com/caarlos0/{{ .ProjectName }}{{ end }}" 17 | - "--platform=linux/amd64" 18 | - image_templates: 19 | - "ghcr.io/caarlos0/{{ .ProjectName }}:{{ .Tag }}-arm64" 20 | - "caarlos0/{{ .ProjectName }}:{{ .Tag }}-arm64" 21 | dockerfile: Dockerfile 22 | use: podman 23 | build_flag_templates: 24 | - "--pull" 25 | - "--label=org.opencontainers.image.created={{.Date}}" 26 | - "--label=org.opencontainers.image.name={{.ProjectName}}" 27 | - "--label=org.opencontainers.image.revision={{.FullCommit}}" 28 | - "--label=org.opencontainers.image.version={{.Version}}" 29 | - "--label=org.opencontainers.image.source={{ with .repository }}{{ . }}{{ else }}https://github.com/caarlos0/{{ .ProjectName }}{{ end }}" 30 | - "--platform=linux/arm64" 31 | goarch: arm64 32 | docker_manifests: 33 | - name_template: "ghcr.io/caarlos0/{{ .ProjectName }}:{{ .Tag }}" 34 | use: podman 35 | image_templates: 36 | - "ghcr.io/caarlos0/{{ .ProjectName }}:{{ .Tag }}-amd64" 37 | - "ghcr.io/caarlos0/{{ .ProjectName }}:{{ .Tag }}-arm64" 38 | - name_template: "ghcr.io/caarlos0/{{ .ProjectName }}:latest" 39 | use: podman 40 | image_templates: 41 | - "ghcr.io/caarlos0/{{ .ProjectName }}:{{ .Tag }}-amd64" 42 | - "ghcr.io/caarlos0/{{ .ProjectName }}:{{ .Tag }}-arm64" 43 | - name_template: "caarlos0/{{ .ProjectName }}:{{ .Tag }}" 44 | use: podman 45 | image_templates: 46 | - "caarlos0/{{ .ProjectName }}:{{ .Tag }}-amd64" 47 | - "caarlos0/{{ .ProjectName }}:{{ .Tag }}-arm64" 48 | - name_template: "caarlos0/{{ .ProjectName }}:latest" 49 | use: podman 50 | image_templates: 51 | - "caarlos0/{{ .ProjectName }}:{{ .Tag }}-amd64" 52 | - "caarlos0/{{ .ProjectName }}:{{ .Tag }}-arm64" 53 | -------------------------------------------------------------------------------- /docker.yml: -------------------------------------------------------------------------------- 1 | # yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json 2 | version: 2 3 | 4 | dockers: 5 | - image_templates: 6 | - "ghcr.io/caarlos0/{{ .ProjectName }}:{{ if .Tag }}{{ .Tag }}{{ else }}{{ .Version }}{{ end }}-amd64" 7 | - "caarlos0/{{ .ProjectName }}:{{ if .Tag }}{{ .Tag }}{{ else }}{{ .Version }}{{ end }}-amd64" 8 | dockerfile: Dockerfile 9 | use: buildx 10 | build_flag_templates: 11 | - "--pull" 12 | - "--label=org.opencontainers.image.created={{.Date}}" 13 | - "--label=org.opencontainers.image.name={{.ProjectName}}" 14 | - "--label=org.opencontainers.image.revision={{.FullCommit}}" 15 | - "--label=org.opencontainers.image.version={{.Version}}" 16 | - "--label=org.opencontainers.image.source={{ with .Var.repository }}{{ . }}{{ else }}https://github.com/caarlos0/{{ .ProjectName }}{{ end }}" 17 | - "--platform=linux/amd64" 18 | - image_templates: 19 | - "ghcr.io/caarlos0/{{ .ProjectName }}:{{ if .Tag }}{{ .Tag }}{{ else }}{{ .Version }}{{ end }}-arm64" 20 | - "caarlos0/{{ .ProjectName }}:{{ if .Tag }}{{ .Tag }}{{ else }}{{ .Version }}{{ end }}-arm64" 21 | dockerfile: Dockerfile 22 | use: buildx 23 | build_flag_templates: 24 | - "--pull" 25 | - "--label=org.opencontainers.image.created={{.Date}}" 26 | - "--label=org.opencontainers.image.name={{.ProjectName}}" 27 | - "--label=org.opencontainers.image.revision={{.FullCommit}}" 28 | - "--label=org.opencontainers.image.version={{.Version}}" 29 | - "--label=org.opencontainers.image.source={{ with .Var.repository }}{{ . }}{{ else }}https://github.com/caarlos0/{{ .ProjectName }}{{ end }}" 30 | - "--platform=linux/arm64" 31 | goarch: arm64 32 | docker_manifests: 33 | - name_template: "ghcr.io/caarlos0/{{ .ProjectName }}:{{ if .Tag }}{{ .Tag }}{{ else }}{{ .Version }}{{ end }}" 34 | image_templates: 35 | - "ghcr.io/caarlos0/{{ .ProjectName }}:{{ if .Tag }}{{ .Tag }}{{ else }}{{ .Version }}{{ end }}-amd64" 36 | - "ghcr.io/caarlos0/{{ .ProjectName }}:{{ if .Tag }}{{ .Tag }}{{ else }}{{ .Version }}{{ end }}-arm64" 37 | - name_template: "ghcr.io/caarlos0/{{ .ProjectName }}:latest" 38 | image_templates: 39 | - "ghcr.io/caarlos0/{{ .ProjectName }}:{{ if .Tag }}{{ .Tag }}{{ else }}{{ .Version }}{{ end }}-amd64" 40 | - "ghcr.io/caarlos0/{{ .ProjectName }}:{{ if .Tag }}{{ .Tag }}{{ else }}{{ .Version }}{{ end }}-arm64" 41 | - name_template: "caarlos0/{{ .ProjectName }}:{{ if .Tag }}{{ .Tag }}{{ else }}{{ .Version }}{{ end }}" 42 | image_templates: 43 | - "caarlos0/{{ .ProjectName }}:{{ if .Tag }}{{ .Tag }}{{ else }}{{ .Version }}{{ end }}-amd64" 44 | - "caarlos0/{{ .ProjectName }}:{{ if .Tag }}{{ .Tag }}{{ else }}{{ .Version }}{{ end }}-arm64" 45 | - name_template: "caarlos0/{{ .ProjectName }}:latest" 46 | image_templates: 47 | - "caarlos0/{{ .ProjectName }}:{{ if .Tag }}{{ .Tag }}{{ else }}{{ .Version }}{{ end }}-amd64" 48 | - "caarlos0/{{ .ProjectName }}:{{ if .Tag }}{{ .Tag }}{{ else }}{{ .Version }}{{ end }}-arm64" 49 | -------------------------------------------------------------------------------- /package_with_completions_and_manpages.yml: -------------------------------------------------------------------------------- 1 | # yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json 2 | version: 2 3 | 4 | variables: 5 | aur_project_name: "" 6 | 7 | before: 8 | hooks: 9 | - ./scripts/completions.sh 10 | - ./scripts/manpages.sh 11 | 12 | archives: 13 | - name_template: "{{ .ProjectName }}_{{ .Os }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}" 14 | files: 15 | - README.md 16 | - LICENSE.md 17 | - completions/* 18 | - manpages/* 19 | format_overrides: 20 | - goos: windows 21 | formats: [zip] 22 | 23 | nix: 24 | - repository: 25 | owner: caarlos0 26 | name: nur 27 | homepage: "{{ with .Var.homepage }}{{ . }}{{ else }}https://github.com/caarlos0/{{ .ProjectName }}{{ end }}" 28 | description: "{{ .Var.description }}" 29 | license: mit 30 | extra_install: |- 31 | installShellCompletion ./completions/* 32 | installManPage ./manpages/{{.ProjectName}}.1.gz 33 | 34 | homebrew_casks: 35 | - repository: 36 | owner: caarlos0 37 | name: homebrew-tap 38 | homepage: "{{ with .Var.homepage }}{{ . }}{{ else }}https://github.com/caarlos0/{{ .ProjectName }}{{ end }}" 39 | url: 40 | verified: github.com/caarlos0/ 41 | description: "{{ .Var.description }}" 42 | manpages: 43 | - "manpages/{{ .ProjectName }}.1.gz" 44 | completions: 45 | bash: "completions/{{ .ProjectName }}.bash" 46 | zsh: "completions/{{ .ProjectName }}.zsh" 47 | fish: "completions/{{ .ProjectName }}.fish" 48 | 49 | nfpms: 50 | - maintainer: Carlos Alexandro Becker 51 | description: "{{ .Var.description }}" 52 | file_name_template: "{{ .ConventionalFileName }}" 53 | homepage: "{{ with .Var.homepage }}{{ . }}{{ else }}https://github.com/caarlos0/{{ .ProjectName }}{{ end }}" 54 | license: MIT 55 | contents: 56 | - src: ./completions/{{ .ProjectName }}.bash 57 | dst: /etc/bash_completion.d/{{ .ProjectName }} 58 | - src: ./completions/{{ .ProjectName }}.fish 59 | dst: /usr/share/fish/completions/{{ .ProjectName }}.fish 60 | - src: ./completions/{{ .ProjectName }}.zsh 61 | dst: /usr/local/share/zsh/site-functions/_{{ .ProjectName }} 62 | - src: ./manpages/{{ .ProjectName }}.1.gz 63 | dst: /usr/share/man/man1/{{ .ProjectName }}.1.gz 64 | formats: 65 | - deb 66 | - rpm 67 | - apk 68 | 69 | aurs: 70 | - maintainers: ["Carlos Alexandro Becker "] 71 | description: "{{ .Var.description }}" 72 | homepage: "{{ with .Var.homepage }}{{ . }}{{ else }}https://github.com/caarlos0/{{ .ProjectName }}{{ end }}" 73 | license: MIT 74 | private_key: "{{ .Env.AUR_KEY }}" 75 | name: "{{ with .Var.aur_project_name }}{{ . }}{{ else }}{{ .ProjectName }}{{ end }}-bin" 76 | git_url: "ssh://aur@aur.archlinux.org/{{ with .Var.aur_project_name }}{{ . }}{{ else }}{{ .ProjectName }}{{ end }}-bin.git" 77 | package: |- 78 | # bin 79 | install -Dm755 "./{{ .ProjectName }}" "${pkgdir}/usr/bin/{{ .ProjectName }}" 80 | # license 81 | install -Dm644 "./LICENSE.md" "${pkgdir}/usr/share/licenses/{{ .ProjectName }}/LICENSE" 82 | # completions 83 | mkdir -p "${pkgdir}/usr/share/bash-completion/completions/" 84 | mkdir -p "${pkgdir}/usr/share/zsh/site-functions/" 85 | mkdir -p "${pkgdir}/usr/share/fish/vendor_completions.d/" 86 | install -Dm644 "./completions/{{ .ProjectName }}.bash" "${pkgdir}/usr/share/bash-completion/completions/{{ .ProjectName }}" 87 | install -Dm644 "./completions/{{ .ProjectName }}.zsh" "${pkgdir}/usr/share/zsh/site-functions/_{{ .ProjectName }}" 88 | install -Dm644 "./completions/{{ .ProjectName }}.fish" "${pkgdir}/usr/share/fish/vendor_completions.d/{{ .ProjectName }}.fish" 89 | # man pages 90 | install -Dm644 "./manpages/{{ .ProjectName }}.1.gz" "${pkgdir}/usr/share/man/man1/{{ .ProjectName }}.1.gz" 91 | --------------------------------------------------------------------------------