project_name: bouncer
before:
  hooks:
    - go mod tidy
    - go generate ./...
builds:
  - id: bouncer
    env:
      - CGO_ENABLED=0
    ldflags:
      - -s
      - -w
      - -X 'main.GitRef={{ .Commit }}'
      - -X 'main.ProjectVersion={{ .Version }}'
      - -X 'main.BuildDate={{ .Date }}'
      - -X 'main.DefaultConfigPath=/etc/bouncer/config.yml'
    gcflags:
      - -trimpath="${PWD}"
    asmflags:
      - -trimpath="${PWD}"
    goos:
      - linux
    goarch:
      - amd64
      - arm64
      - "386"
    main: ./cmd/bouncer
archives:
  - id: bouncer
    builds: ["bouncer"]
    name_template: '{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}{{ with .Arm }}v{{ . }}{{ end }}{{ with .Mips }}_{{ . }}{{ end }}{{ if not (eq .Amd64 "v1") }}{{ .Amd64 }}{{ end }}'
    files:
      - README.md
      - misc/packaging/common/config.yml
checksum:
  name_template: "checksums.txt"
snapshot:
  name_template: "{{ .Version }}"
changelog:
  sort: asc
  filters:
    exclude:
      - "^docs:"
      - "^test:"
nfpms:
  - id: bouncer-bin
    builds:
      - "bouncer"
    package_name: bouncer-bin
    homepage: https://forge.cadoles.com/Cadoles/bouncer
    maintainer: Cadoles <contact@cadoles.com>
    description: |-
      reverse proxy server with dynamic queuing management - binaries
    license: AGPL-3.0
    formats:
      - apk
      - deb
      - rpm
    contents:
      - src: misc/packaging/common/config.yml
        dst: /etc/bouncer/config.yml
        type: config
      - src: layers
        dst: /etc/bouncer/layers
        type: config
      - src: templates
        dst: /etc/bouncer/templates
        type: config
      - dst: /etc/bouncer/bootstrap.d
        type: dir
        file_info:
          mode: 0700
  - id: bouncer-admin
    meta: true
    package_name: bouncer-admin
    homepage: https://forge.cadoles.com/Cadoles/bouncer
    maintainer: Cadoles <contact@cadoles.com>
    dependencies:
      - bouncer-bin
    description: |-
      reverse proxy server with dynamic queuing management - administration service
    license: AGPL-3.0
    formats:
      - apk
      - deb
      - rpm
    contents:
      - src: misc/packaging/systemd/bouncer-admin.systemd.service
        dst: /usr/lib/systemd/system/bouncer-admin.service
        packager: deb
      - src: misc/packaging/systemd/bouncer-admin.systemd.service
        dst: /usr/lib/systemd/system/bouncer-admin.service
        packager: rpm
      - src: misc/packaging/openrc/bouncer-admin.openrc.sh
        dst: /etc/init.d/bouncer-admin
        file_info:
          mode: 0755
        packager: apk
      - dst: /usr/share/bouncer
        type: dir
        file_info:
          mode: 0700
      - dst: /var/log/bouncer
        type: dir
        file_info:
          mode: 0700
        packager: apk
    scripts:
      postinstall: "misc/packaging/common/postinstall-bouncer-admin.sh"
  - id: bouncer-proxy
    meta: true
    dependencies:
      - bouncer-bin
    package_name: bouncer-proxy
    homepage: https://forge.cadoles.com/Cadoles/bouncer
    maintainer: Cadoles <contact@cadoles.com>
    description: |-
      reverse proxy server with dynamic queuing management - proxy service
    license: AGPL-3.0
    formats:
      - apk
      - deb
      - rpm
    contents:
      - src: misc/packaging/systemd/bouncer-proxy.systemd.service
        dst: /usr/lib/systemd/system/bouncer-proxy.service
        packager: deb
      - src: misc/packaging/systemd/bouncer-proxy.systemd.service
        dst: /usr/lib/systemd/system/bouncer-proxy.service
        packager: rpm
      - src: misc/packaging/openrc/bouncer-proxy.openrc.sh
        dst: /etc/init.d/bouncer-proxy
        file_info:
          mode: 0755
        packager: apk
      - dst: /usr/share/bouncer
        type: dir
        file_info:
          mode: 0700
      - dst: /var/log/bouncer
        type: dir
        file_info:
          mode: 0700
        packager: apk
    scripts:
      postinstall: "misc/packaging/common/postinstall-bouncer-proxy.sh"