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

versions:
  github: duckdb/duckdb/releases/tags

build:
  dependencies:
    cmake.org: ^3
    git-scm.org: '*'
  working-directory: build
  script: |
    # duckdb uses git to get its version
    git init ..
    git config user.email "bot@pkgx.dev"
    git config user.name "pkgxbot"
    git commit --allow-empty -mnil
    git tag v{{version}}

    cmake ..
    make --jobs {{ hw.concurrency }}
    mkdir -p "{{prefix}}"/bin
    mv duckdb "{{prefix}}"/bin
  env:
    ARGS:
      - -DCMAKE_INSTALL_PREFIX="{{prefix}}"
      - -DCMAKE_BUILD_TYPE=Release
      - -DBUILD_ICU_EXTENSION=1
      - -DBUILD_JSON_EXTENSION=1
      - -DBUILD_PARQUET_EXTENSION=1

provides:
  - bin/duckdb

test:
  fixture: |
    CREATE TABLE weather (temp INTEGER);
    INSERT INTO weather (temp) VALUES (40), (45), (50);
    SELECT AVG(temp) FROM weather;
  script: |
    out="$(duckdb < $FIXTURE)"
    exp=$(cat <<EOS
    ┌─────────────┐
    │ avg("temp") │
    │   double    │
    ├─────────────┤
    │        45.0 │
    └─────────────┘
    EOS)

    test "$out" = "$exp"

    if [[ "$(duckdb --version)" != "v{{version}}"* ]]; then
      echo "invalid version" >&2
      exit 1
    fi
