distributable:
  url: https://github.com/fish-shell/fish-shell/archive/refs/tags/{{version}}.tar.gz
  strip-components: 1

versions:
  github: fish-shell/fish-shell/releases/tags

dependencies:
  gnu.org/gettext: '*'
  invisible-island.net/ncurses: '>=6.0'

build:
  dependencies:
    cmake.org: '>=3.5'
    freedesktop.org/pkg-config: '*'
    gnu.org/patch: '*'
    git-scm.org: ^2 # needed for fish's pcre
  script:
    # By default, fish's fish_command_not_found handler will redirect to stderr,
    # return an exit code of 127. Always. This patch fixes it. Hopefully, it will
    # be merged upstream soon. https://github.com/fish-shell/fish-shell/pull/9517
    - patch -p1 <props/command_not_found_handler.diff

    - echo {{version}} >version

    - run: |
        cmake .. $ARGS
        make install
      working-directory: build

    - run: |
        sed -i.bak -e "s| $PKGX_DIR/| \$PKGX_DIR/|g" __fish_build_paths.fish
        rm __fish_build_paths.fish.bak
      working-directory: ${{prefix}}/share/fish
  env:
    ARGS:
      - -DCMAKE_BUILD_TYPE=Release
      - -DCMAKE_INSTALL_PREFIX="{{prefix}}"

test:
  dependencies:
    tea.xyz: '*'
  script: |
    fish $FIXTURE
    fish $FIXTURE | grep "variable1variable2variable3variable4variable5variable6variable7variable8variable9variable10semverator "
  fixture: |
    #!/usr/bin/env fish

    set -lx V variable
    for x in (seq 1 10)
      echo -n $V$x
    end

    begin
      if which semverator
        exit 2
      end

      tea --magic=fish | source
      semverator --version

      #FIXME https://github.com/teaxyz/pantry/issues/861
      # semverator --version > semverator.out

      # if ! grep semverator semverator.out
      #   exit 3
      # end
    end

provides:
  - bin/fish
  - bin/fish_indent
  - bin/fish_key_reader
