version: 2
# This is an example goreleaser.yaml file with some sane defaults.
# Make sure to check the documentation at http://goreleaser.com
before:
  hooks:
    # You may remove this if you don't use go modules.
    - go mod download
    # you may remove this if you don't need go generate
    - go generate ./...
builds:
- env:
  - CGO_ENABLED=0
  main: ./cmd/kaf
  goarch:
  - amd64
  - arm64
  goos:
  - linux
  - darwin
  - windows
archives:
  - name_template: >-
      {{ .ProjectName }}_{{ .Version }}_
      {{- title .Os }}_
      {{- if eq .Arch "amd64" }}x86_64
      {{- else if eq .Arch "386" }}i386
      {{- else }}{{ .Arch }}{{ end }}
checksum:
  name_template: 'checksums.txt'
snapshot:
  version_template: "{{ .Tag }}-next"
changelog:
  sort: asc
  filters:
    exclude:
    - '^docs:'
    - '^test:'
release:
  github:
    owner: birdayz 
    name: kaf

brews:
  -
    # Name template of the recipe
    # Default to project name
    name: kaf

    # GOARM to specify which 32-bit arm version to use if there are multiple versions
    # from the build section. Brew formulas support only one 32-bit version.
    # Default is 6 for all artifacts or each id if there a multiple versions.
    goarm: 6

    # GOAMD64 to specify which amd64 version to use if there are multiple versions
    # from the build section.
    # Default is v1.
    #goamd64: v3

    # NOTE: make sure the url_template, the token and given repo (github or gitlab) owner and name are from the
    # same kind. We will probably unify this in the next major version like it is done with scoop.

    # GitHub/GitLab repository to push the formula to
    repository:
      owner: birdayz
      name: homebrew-kaf

      # Optionally a branch can be provided.
      # Defaults to the default repository branch.
      branch: master

      # Optionally a token can be provided, if it differs from the token provided to GoReleaser
      token: "{{ .Env.HOMEBREW_TAP_GITHUB_TOKEN }}"

    # Template for the url which is determined by the given Token (github, gitlab or gitea)
    #
    # Default depends on the client.
    #url_template: "http://github.mycompany.com/foo/bar/releases/{{ .Tag }}/{{ .ArtifactName }}"

    # Allows you to set a custom download strategy. Note that you'll need
    # to implement the strategy and add it to your tap repository.
    # Example: https://docs.brew.sh/Formula-Cookbook#specifying-the-download-strategy-explicitly
    # Default is empty.
    # download_strategy: CurlDownloadStrategy

    # Allows you to add a custom require_relative at the top of the formula template
    # Default is empty
    # custom_require: custom_download_strategy

    # Git author used to commit to the repository.
    # Defaults are shown.
    commit_author:
      name: Johannes Bruederl
      email: johannes.bruederl@gmail.com

    # The project name and current git tag are used in the format string.
    # commit_msg_template: "Brew formula update for {{ .ProjectName }} version {{ .Tag }}"

    # Folder inside the repository to put the formula.
    # Default is the root folder.
    # folder: Formula

    # Caveats for the user of your binary.
    # Default is empty.
    # caveats: "How to use this binary"

    # Your app's homepage.
    # Default is empty.
    # homepage: "https://example.com/"

    # Template of your app's description.
    # Default is empty.
    # description: "Software to create fast and easy drum rolls."

    # SPDX identifier of your app's license.
    # Default is empty.
    # license: "MIT"

    # Setting this will prevent goreleaser to actually try to commit the updated
    # formula - instead, the formula file will be stored on the dist folder only,
    # leaving the responsibility of publishing it to the user.
    # If set to auto, the release will not be uploaded to the homebrew tap
    # in case there is an indicator for prerelease in the tag e.g. v1.0.0-rc1
    # Default is false.
    # skip_upload: true

    # Custom block for brew.
    # Can be used to specify alternate downloads for devel or head releases.
    # Default is empty.
    # custom_block: |
      # head "https://github.com/some/package.git"
      # ...

    # Packages your package depends on.
    # dependencies:
      # - name: git
      # - name: zsh
        # type: optional

    # Packages that conflict with your package.
    # conflicts:
      # - svn
      # - bash

    # Specify for packages that run as a service.
    # Default is empty.
    # plist: |
      # <?xml version="1.0" encoding="UTF-8"?>
      # ...

    # Service block.
    # service: |
      # run: foo/bar
      # ...

    # So you can `brew test` your formula.
    # Default is empty.
    # test: |
      # system "#{bin}/program --version"
      # ...

    # Custom install script for brew.
    # Default is 'bin.install "program"'.
    # install: |
      # bin.install "program"
      # ...

    # Custom post_install script for brew.
    # Could be used to do any additional work after the "install" script
    # Default is empty.
    # post_install: |
        # etc.install "app-config.conf"
        # ...
        #
# .goreleaser.yaml
#
aurs:
  -
    # The package name.
    #
    # Defaults to the Project Name with a -bin suffix.
    #
    # Note that since this integration does not create a PKGBUILD to build from
    # source, per Arch's guidelines.
    # That said, GoReleaser will enforce a `-bin` suffix if its not present.
    name: kaf-bin

    homepage: https://github.com/birdayz/kaf

    # Your app's homepage.
    # Default is empty.
    #homepage: "https://example.com/"

    # Template of your app's description.
    # Default is empty.
    description: "Kafka CLI inspired by kubectl & docker"

    # The maintainers of the package.
    # Defaults to empty.
    maintainers:
      - 'Johannes Bruederl <johannes.bruederl@gmail.com>'

    # The contributors of the package.
    # Defaults to empty.
    contributors:
      - 'Michał Lisowski <lisu@riseup.net>'

    # SPDX identifier of your app's license.
    # Default is empty.
    license: "MIT"

    # The SSH private key that should be used to commit to the Git repository.
    # This can either be a path or the key contents.
    #
    # WARNING: do not expose your private key in the config file!
    private_key: '{{ .Env.AUR_KEY }}'

    # The AUR Git URL for this package.
    # Defaults to empty.
    git_url: 'ssh://aur@aur.archlinux.org/kaf-bin.git'

    # Setting this will prevent goreleaser to actually try to commit the updated
    # formula - instead, the formula file will be stored on the dist folder only,
    # leaving the responsibility of publishing it to the user.
    #
    # If set to auto, the release will not be uploaded to the homebrew tap
    # in case there is an indicator for prerelease in the tag e.g. v1.0.0-rc1.
    #
    # Default is false.
    # skip_upload: true

    # List of additional packages that the software provides the features of.
    #
    # Defaults to the project name.
    provides:
      - kaf-bin

    # List of packages that conflict with, or cause problems with the package.
    #
    # Defaults to the project name.
    conflicts:
      - kaf-bin
      - kaf

    # List of packages that must be installed to install this.
    #
    # Defaults to empty.
    # depends:
      # - curl

    # List of packages that are not needed for the software to function,
    # but provide additional features.
    #
    # Must be in the format `package: short description of the extra functionality`.
    #
    # Defaults to empty.
    # optdepends:
      # - 'wget: for downloading things'

    # Custom package instructions.
    #
    # Defaults to `install -Dm755 "./PROJECT_NAME" "${pkgdir}/usr/bin/PROJECT_NAME",
    # which is not always correct.
    #
    # We recommend you override this, installing the binary, license and
    # everything else your package needs.
    package: |-
      # bin
      install -Dm755 "./kaf" "${pkgdir}/usr/bin/kaf"

      # completions
      # bash
      mkdir -p "${pkgdir}/etc/bash_completion.d"
      ./kaf completion bash > "${pkgdir}/etc/bash_completion.d/kaf"

      # zsh
      mkdir -p "${pkgdir}/usr/share/zsh/site-functions"
      ./kaf completion zsh > "${pkgdir}/usr/share/zsh/site-functions/_kaf"

      # Fish
      mkdir -p "${pkgdir}/usr/share/fish/vendor_completions.d"
      ./kaf completion fish > ${pkgdir}/usr/share/fish/vendor_completions.d/kaf.fish

    # Git author used to commit to the repository.
    # Defaults are shown below.
    commit_author:
      name: Johannes Bruederl
      email: johannes.bruederl@gmail.com

    # Commit message template.
    # Defaults to `Update to {{ .Tag }}`.
    commit_msg_template: "pkgbuild updates"

    # If you build for multiple GOAMD64 versions, you may use this to choose which one to use.
    # Defaults to `v1`.
    #goamd64: v2

    # The value to be passed to `GIT_SSH_COMMAND`.
    # This is mainly used to specify the SSH private key used to pull/push to
    # the Git URL.
    #
    # Defaults to `ssh -i {{ .KeyPath }} -o StrictHostKeyChecking=accept-new -F /dev/null`.
    #git_ssh_command: 'ssh -i {{ .Env.KEY }} -o SomeOption=yes'

    # Template for the url which is determined by the given Token
    # (github, gitlab or gitea).
    #
    # Default depends on the client.
    #url_template: "http://github.mycompany.com/foo/bar/releases/{{ .Tag }}/{{ .ArtifactName }}"
