project_name: jfa-go
release:
    github:
        owner: hrfee
        name: jfa-go
    name_template: "v{{.Version}}"
before:
  hooks:
    - go mod download
    - rm -rf data/web
    - mkdir -p data
    - cp -r static data/web
    - npm install
    - npm install esbuild
    - mkdir -p data/web/css
    - npx esbuild --bundle css/base.css --outfile=./data/web/css/bundle.css --external:remixicon.css --minify
    - cp node_modules/remixicon/fonts/remixicon.css node_modules/remixicon/fonts/remixicon.woff2 data/web/css/
    - cp -r html data/
    - cp -r lang data/
    - cp LICENSE data/
    - python3 scripts/enumerate_config.py -i config/config-base.json -o data/config-base.json
    - python3 scripts/generate_ini.py -i config/config-base.json -o data/config-default.ini
    - python3 scripts/compile_mjml.py -o data/
    - npx esbuild --bundle ts/admin.ts --outfile=./data/web/js/admin.js --minify
    - npx esbuild --bundle ts/pwr.ts --outfile=./data/web/js/pwr.js --minify
    - npx esbuild --bundle ts/form.ts --outfile=./data/web/js/form.js --minify
    - npx esbuild --bundle ts/setup.ts --outfile=./data/web/js/setup.js --minify
    - npx esbuild --bundle ts/crash.ts --outfile=./data/crash.js --minify
    - cp html/crash.html data/
    - npx uncss data/crash.html --csspath web/css --output data/bundle.css
    - npx inline-source --root data data/crash.html data/crash.html
    - rm data/bundle.css
    - mv data/crash.html data/html/
    - go get -u github.com/swaggo/swag/cmd/swag
    - swag init -g main.go
builds:
    - id: notray
      dir: ./
      env:
        - CGO_ENABLED=0
      ldflags:
        - -s -w -X main.version={{.Env.JFA_GO_VERSION}} -X main.commit={{.ShortCommit}} -X main.updater=binary
      goos:
        - linux
        - darwin
      goarch:
        - arm
        - arm64
        - amd64
    - id: windows-tray
      dir: ./
      env:
        - CGO_ENABLED=1
        - CC=x86_64-w64-mingw32-gcc
        - CXX=x86_64-w64-mingw32-g++
      flags:
        - -tags=tray
      ldflags:
        - -s -w -X main.version={{.Env.JFA_GO_VERSION}} -X main.commit={{.ShortCommit}} -X main.updater=binary -H=windowsgui
      goos:
        - windows
      goarch:
        - amd64
    - id: linux-tray
      dir: ./
      env:
        - CGO_ENABLED=1
      flags:
        - -tags=tray
      ldflags:
        - -s -w -X main.version={{.Env.JFA_GO_VERSION}} -X main.commit={{.ShortCommit}} -X main.updater=binary
      goos:
        - linux
      goarch:
        - amd64
archives:
  - id: windows-tray
    builds:
        - windows-tray
    format: zip
    name_template: "{{ .ProjectName }}_{{ .Version }}_TrayIcon_{{ .Os }}_{{ .Arch }}"
    replacements:
        darwin: macOS
        linux: Linux
        windows: Windows
        amd64: x86_64
  - id: linux-tray
    builds:
        - linux-tray
    format: zip
    name_template: "{{ .ProjectName }}_{{ .Version }}_TrayIcon_{{ .Os }}_{{ .Arch }}"
    replacements:
        darwin: macOS
        linux: Linux
        windows: Windows
        amd64: x86_64
  - id: notray
    builds:
        - notray
    format: zip
    name_template: "{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}"
    replacements:
        darwin: macOS
        linux: Linux
        windows: Windows
        amd64: x86_64
checksum:
    name_template: 'checksums.txt'
snapshot:
    name_template: "0.0.0-{{ .Env.JFA_GO_NFPM_EPOCH }}"
changelog:
    sort: asc
    filters:
        exclude:
            - '^docs:'
            - '^test:'
nfpms:
  - id: notray
    file_name_template: '{{ .ProjectName }}{{ if .IsSnapshot }}-git{{ end }}_{{ .Arch }}_{{ if .IsSnapshot }}{{ .ShortCommit }}{{ else }}v{{ .Version }}{{ end }}'
    package_name: jfa-go
    homepage: https://github.com/hrfee/jfa-go
    description: A web app for managing users on Jellyfin
    maintainer: Harvey Tindall <hrfee@hrfee.dev>
    license: MIT
    vendor: hrfee.dev
    version_metadata: git
    builds:
      - notray
    contents:
      - src: ./LICENSE
        dst: /usr/share/licenses/jfa-go
    formats:
      - apk
      - deb
      - rpm
  - id: tray
    file_name_template: '{{ .ProjectName }}{{ if .IsSnapshot }}-git{{ end }}_TrayIcon_{{ .Arch }}_{{ if .IsSnapshot }}{{ .ShortCommit }}{{ else }}v{{ .Version }}{{ end }}'
    package_name: jfa-go-tray
    homepage: https://github.com/hrfee/jfa-go
    description: A web app for managing users on Jellyfin
    maintainer: Harvey Tindall <hrfee@hrfee.dev>
    license: MIT
    vendor: hrfee.dev
    version_metadata: git
    builds:
      - linux-tray
    contents:
      - src: ./LICENSE
        dst: /usr/share/licenses/jfa-go
    formats:
      - apk
      - deb
      - rpm
    overrides:
        deb:
            conflicts:
                - jfa-go
            replaces:
                - jfa-go
            dependencies:
                - libappindicator3-1
        rpm:
            dependencies:
                - libappindicator-gtk3
        apk:
            dependencies:
                - libappindicator
