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

versions:
  github: pypa/pipenv/releases/tags
  strip: /^v/

dependencies:
  tea.xyz: ^0

companions:
  python.org: '>=3.7<3.12'
  pip.pypa.io: '*'

build:
  dependencies:
    python.org: '>=3.7<3.12'
    crates.io/semverator: '*'
  script:
    - python-venv.sh {{prefix}}/bin/pipenv

    # create exec scripts for pipenv so it can auto install and use the pythons it wants
    - working-directory:
        ${{prefix}}/bin
      run: |
        v=3.6
        while semverator lt $v {{deps.python.org.version.marketing}}; do
          v=$(semverator bump $v minor | cut -d. -f1,2)
          echo '#!/bin/sh' > python$v
          echo "exec tea python~$v \"\$@\"" >> python$v
          chmod +x python$v
        done

    # so the venv for ourselves works without adding a specific python to
    # our runtime dependencies
    - working-directory:
        ${{prefix}}/bin
      run: |
        echo '#!/bin/sh' > python
        echo "exec tea python~{{ deps.python.org.version.marketing }} \"\$@\"" >> python
        chmod +x python

runtime:
  env:
    PIPENV_IGNORE_VIRTUALENVS: 1

test:
  - pipenv --version
  - pipenv --version 2>&1 | grep {{version}}

  - run: |
      pipenv --python 3.7
      pipenv install pycowsay
      pipenv run pycowsay "Hello World"
    working-directory:
      a

  - run: |
      pipenv --python 3.10
      pipenv install pycowsay
      pipenv run pycowsay "Hello World"
    working-directory:
      b

provides:
  - bin/pipenv

marker-files:
  - Pipfile
  - Pipfile.lock
  # TODO python version can be obtained from the Pipfile
