name: Cache dependencies
inputs:
  platform:
    required: true
  target:
    required: true
  bits:
    required: true
outputs:
  cache-hit:
    value: ${{ steps.cache.outputs.cache-hit }}
runs:
  using: "composite"
  steps:
    - name: Hash submodule revisions
      id: hash
      working-directory: addons/godot_xterm/native/thirdparty
      shell: bash
      run: |
        godot_cpp_rev=$(git ls-tree HEAD godot-cpp --object-only)
        libuv_rev=$(git ls-tree HEAD libuv --object-only)
        libtsm_rev=$(git ls-tree HEAD libtsm --object-only)
        hash_cmd=$([[ $RUNNER_OS == 'Windows' ]] && echo 'sha1sum' || echo 'shasum')
        hash_of_hashes=$(echo -n "$godot_cpp_rev$libuv_rev$libtsm_rev" | $hash_cmd | head -c 40)
        echo "::set-output name=hash::$hash_of_hashes"
    - name: Cache submodules
      uses: actions/cache@v3
      id: cache
      with:
        path: addons/godot_xterm/native/thirdparty
        key: thirdparty-${{ inputs.platform }}-${{ inputs.bits }}-${{ inputs.target }}-${{ steps.hash.outputs.hash }}
        restore-keys: |
          thirdparty-${{ inputs.platform }}-${{ inputs.bits }}-${{ inputs.target }}-
          thirdparty-${{ inputs.platform }}-${{ inputs.bits }}-