# https://taskfile.dev

version: '3'

vars:
  PREFIX: '{{default "/usr/local" .PREFIX}}'
  bindir__: '{{.PREFIX}}/bin'
  BINDIR: '{{default .bindir__ .BINDIR}}'
  libdir__: '{{.PREFIX}}/share/hilbish'
  LIBDIR: '{{default .libdir__ .LIBDIR}}'
  goflags__: '-ldflags "-s -w -X main.dataDir={{.LIBDIR}}"'
  GOFLAGS: '{{default .goflags__ .GOFLAGS}}'

tasks:
  default:
    cmds:
      - go build {{.GOFLAGS}}
    vars:
      GOFLAGS: '-ldflags "-s -w -X main.dataDir={{.LIBDIR}} -X main.gitCommit=$(git rev-parse --short HEAD) -X main.gitBranch=$(git rev-parse --abbrev-ref HEAD)"'

  default-nocgo:
    cmds:
      - CGO_ENABLED=0 go build {{.GOFLAGS}}
    vars:
      GOFLAGS: '-ldflags "-s -w -X main.dataDir={{.LIBDIR}} -X main.gitCommit=$(git rev-parse --short HEAD) -X main.gitBranch=$(git rev-parse --abbrev-ref HEAD)"'

  build:
    cmds:
      - go build {{.GOFLAGS}}

  build-nocgo:
    cmds:
      - CGO_ENABLED=0 go build {{.GOFLAGS}}

  install:
    cmds:
      - install -v -d "{{.DESTDIR}}{{.BINDIR}}/" && install -m 0755 -v hilbish "{{.DESTDIR}}{{.BINDIR}}/hilbish"
      - mkdir -p "{{.DESTDIR}}{{.LIBDIR}}"
      - cp -r libs docs emmyLuaDocs nature .hilbishrc.lua {{.DESTDIR}}{{.LIBDIR}}
      - grep -qxF "{{.DESTDIR}}{{.BINDIR}}/hilbish" /etc/shells || echo "{{.DESTDIR}}{{.BINDIR}}/hilbish" >> /etc/shells

  uninstall:
    cmds:
      - rm -vrf
        "{{.DESTDIR}}{{.BINDIR}}/hilbish"
        "{{.DESTDIR}}{{.LIBDIR}}"
      - grep -v 'hilbish' /etc/shells > /tmp/shells.hilbish_uninstall && mv /tmp/shells.hilbish_uninstall /etc/shells
