distributable:
  url: https://registry.npmjs.org/code-server/-/code-server-{{version}}.tgz
  strip-components: 1

versions:
  npm: code-server

dependencies:
  nodejs.org: ~20.6 # requires ^20, before .6 there were napi issues, and .14 also manifests
  linux:
    gnome.org/libsecret: ^0.21
    x.org/x11: ^1.8
    x.org/xkbfile: ^1.1
    kerberos.org: ^1.21

build:
  dependencies:
    npmjs.com: '*'
    python.org: '>=3.11'
  script:
    - npm i $ARGS .
    - run: ln -s ../libexec/bin/code-server code-server
      working-directory: '{{prefix}}/bin'
    - npm i -ddd --global --unsafe-perm --prefix={{prefix}}/libexec --install-links $PKGS
  env:
    ARGS:
      - -ddd
      - --global
      - --build-from-source
      - --prefix={{prefix}}/libexec
      - --install-links
      - --unsafe-perm
      - --legacy-peer-deps
      - --omit=dev
    PKGS:
      - '@microsoft/1ds-core-js'
      - minimist
      - '@vscode/spdlog'
      - yauzl
    linux:
      CC: clang
      CXX: clang++
      LD: clang
      CXXFLAGS: $CXXFLAGS -D__NO_INLINE__

provides:
  - bin/code-server

test:
  - code-server --version | grep {{version}}
  - code-server --extensions-dir=. --install-extension wesbos.theme-cobalt2
  - code-server --extensions-dir=. --list-extensions | grep wesbos.theme-cobalt2
