---
name: ⚙️ Install Library

on:
  pull_request:
    paths:
      - "lib/sh/**"
  push:
    paths:
      - "lib/sh/**"
  workflow_dispatch:

jobs:
  shellcheck:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
  #      - name: ☑️ ShellCheck
  #        uses: ludeeus/action-shellcheck@master
  #        with:
  #          scandir: "./lib/sh"

  run-install:
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - name: ♻️ Prepare repository for Windows
        if: startsWith(matrix.os, 'windows')
        run: git config --global core.autocrlf input
      - uses: actions/checkout@v3
      - uses: rlespinasse/github-slug-action@v4
      - name: 📦 Linux dependencies
        if: startsWith(matrix.os, 'ubuntu-latest')
        run: |
          sudo apt-get update
          sudo apt-get install -y curl git zsh
      - name: 🍎 MacOS dependencies
        if: startsWith(matrix.os, 'macos')
        run: |
          brew install curl zsh
      - name: 🪟 Windows dependencies
        if: startsWith(matrix.os, 'windows')
        uses: egor-tensin/setup-cygwin@v3
        with:
          platform: x64
          packages: curl git zsh
      - name: 🐧 Install on Linux
        if: startsWith(matrix.os, 'ubuntu')
        run: |
          sh -x ./lib/sh/install.sh -- -i skip
          sh -x ./lib/sh/install.sh -- -a annex
          sh -x ./lib/sh/install.sh -- -a loader
          sh -x ./lib/sh/install.sh -- -a zunit
          sh -x ./lib/sh/install.sh -- -a zpmod
      - name: 🍎 Install on MacOS
        if: startsWith(matrix.os, 'macos')
        run: |
          sh -x ./lib/sh/install.sh -- -i skip
          sh -x ./lib/sh/install.sh -- -a annex
          sh -x ./lib/sh/install.sh -- -a loader
          sh -x ./lib/sh/install.sh -- -a zunit
          sh -x ./lib/sh/install.sh -- -a zpmod
      - name: 🪟 Install on Windows
        if: startsWith(matrix.os, 'windows')
        shell: C:\tools\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr '{0}'
        run: |
          cd ${GITHUB_WORKSPACE}
          sh -x ./lib/sh/install.sh -- -i skip
          sh -x ./lib/sh/install.sh -- -a annex
          sh -x ./lib/sh/install.sh -- -a loader
          sh -x ./lib/sh/install.sh -- -a zunit
          sh -x ./lib/sh/install.sh -- -a zpmod
