---
# install moreutils to enable ifne (if not empty)
# will only run the respective analyzers when files to test
# are acutally found
image: fnichol/check-shell:latest

analyze:
  stage: test
  before_script:
    - apk add moreutils
    - shellcheck --version
  script:
    - echo "--------- CHECKING POSIX SHELLSCRIPTS -------------"
    - find . -type f -name '*.sh' | ifne xargs shellcheck -Calways
    - echo "--------- CHECKING ZSH SHELLSCRIPTS -------------"
    - find . -type f -name '*.zsh' | ifne xargs shellcheck -Calways -s bash -e SC2034

lint:
  stage: test
  before_script:
    - apk add moreutils
    - shfmt -version
  script:
    - echo "--------- CHECKING POSIX SHELLSCRIPTS -------------"
    - find . -type f -name '*.sh' -not -path '*/pomo-app/*' | ifne xargs shfmt -d -i 4
    - echo "--------- CHECKING ZSH SHELLSCRIPTS -------------"
    - find . -type f -name '*.zsh' -not -path '*/pomo-app/*' | ifne xargs shfmt -d -i 4

test:
  stage: test
  image: alpine
  before_script:
    - apk add git bash
    - git clone https://github.com/bats-core/bats-core.git /bats
    - /bats/bin/bats --version
  script:
    - /bats/bin/bats -r .
