diff --git a/projects/kiro.dev/cli/package.yml b/projects/kiro.dev/cli/package.yml index 1efd49c953..ba211a5592 100644 --- a/projects/kiro.dev/cli/package.yml +++ b/projects/kiro.dev/cli/package.yml @@ -15,39 +15,24 @@ dependencies: linux: alsa-project.org/alsa-lib: "*" # v2.6.0 requires libasound.so.2 +# v3 dropped the .app/dmg and the -chat/-term helpers: one kiro-cli binary, +# shipped as a tarball on every platform build: - - sed -i "s/%%version%%/{{version}}/g" props/shim.{{hw.platform}} - - install -Dm755 props/shim.{{hw.platform}} {{prefix}}/bin/kiro-cli - - install -Dm755 props/shim.{{hw.platform}} {{prefix}}/bin/kiro-cli-chat - - install -Dm755 props/shim.{{hw.platform}} {{prefix}}/bin/kiro-cli-term + - sed -i "s/%%version%%/{{version}}/g" props/shim + - install -Dm755 props/shim {{prefix}}/bin/kiro-cli provides: - bin/kiro-cli - - bin/kiro-cli-chat - - bin/kiro-cli-term test: dependencies: gnu.org/coreutils: "*" - env: - linux: - BINS: "{{prefix}}/libexec/bin" - darwin: - BINS: "{{prefix}}/libexec/Contents/MacOS" script: # first time will download and execute the actual binary - rm -rf {{prefix}}/libexec - - test ! -f "$BINS/kiro-cli" - - test ! -f "$BINS/kiro-cli-chat" - - test ! -f "$BINS/kiro-cli-term" + - test ! -f {{prefix}}/libexec/bin/kiro-cli - kiro-cli --version | grep -w "{{version}}" # second time will just execute the actual binary - - test -f "$BINS/kiro-cli" + - test -f {{prefix}}/libexec/bin/kiro-cli - timeout 0.5 kiro-cli --version | grep -w "{{version}}" - # check the other binaries too - - kiro-cli-chat --version | grep -w "{{version}}" - - test -f "$BINS/kiro-cli-chat" - - kiro-cli-term --version | grep -w "{{version}}" - - test -f "$BINS/kiro-cli-term" - # this will fail if kiro-cli cannot find kiro-cli-chat - - kiro-cli chat --help >/dev/null + - kiro-cli chat --help | grep -F 'kiro-cli chat [OPTIONS]' diff --git a/projects/kiro.dev/cli/shim.linux b/projects/kiro.dev/cli/shim old mode 100755 new mode 100644 similarity index 50% rename from projects/kiro.dev/cli/shim.linux rename to projects/kiro.dev/cli/shim index 06e028813d..2906756369 --- a/projects/kiro.dev/cli/shim.linux +++ b/projects/kiro.dev/cli/shim @@ -3,9 +3,8 @@ set -eu shim_path="$(realpath "$0")" -shim_name="$(basename "${shim_path}")" binary_dir="$(dirname "${shim_path}")/../libexec/bin" -binary_path="${binary_dir}/${shim_name}" +binary_path="${binary_dir}/kiro-cli" if [ ! -x "${binary_path}" ]; then # will be replaced during build @@ -14,23 +13,28 @@ if [ ! -x "${binary_path}" ]; then work_dir="$(mktemp -d -p /tmp "pkgx-kiro-cli-${version}-XXXXXXXXXX")" trap 'rm -rf "${work_dir}"' EXIT - arch="$(uname -m)" - archive_variant="" - - glibc_version="$(getconf GNU_LIBC_VERSION)" - glibc_version="${glibc_version#"glibc "}" - if [ -n "${glibc_version}" ]; then - glibc_major="${glibc_version%%.*}" - glibc_minor="${glibc_version#*.}" - glibc_minor="${glibc_minor%%.*}" - - # Use musl-based binaries for glic older than 2.34 - if [ "${glibc_major}" -lt 2 ] || { [ "${glibc_major}" -eq 2 ] && [ "${glibc_minor}" -lt 34 ]; }; then - archive_variant="-musl" + if [ "$(uname -s)" = Darwin ]; then + target="universal-darwin" + else + archive_variant="" + + glibc_version="$(getconf GNU_LIBC_VERSION)" + glibc_version="${glibc_version#"glibc "}" + if [ -n "${glibc_version}" ]; then + glibc_major="${glibc_version%%.*}" + glibc_minor="${glibc_version#*.}" + glibc_minor="${glibc_minor%%.*}" + + # Use musl-based binaries for glic older than 2.34 + if [ "${glibc_major}" -lt 2 ] || { [ "${glibc_major}" -eq 2 ] && [ "${glibc_minor}" -lt 34 ]; }; then + archive_variant="-musl" + fi fi + + target="$(uname -m)-linux${archive_variant}" fi - archive_url="https://desktop-release.q.us-east-1.amazonaws.com/${version}/kirocli-${arch}-linux${archive_variant}.tar.gz" + archive_url="https://desktop-release.q.us-east-1.amazonaws.com/${version}/kirocli-${target}.tar.gz" archive_path="${work_dir}/kiro-cli.tar.gz" echo "Downloading ${archive_url}..." >&2 diff --git a/projects/kiro.dev/cli/shim.darwin b/projects/kiro.dev/cli/shim.darwin deleted file mode 100755 index ae499756f6..0000000000 --- a/projects/kiro.dev/cli/shim.darwin +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env sh - -set -eu - -shim_path="$(realpath "$0")" -shim_name="$(basename "${shim_path}")" -binary_dir="$(dirname "${shim_path}")/../libexec/Contents/MacOS" -binary_path="${binary_dir}/${shim_name}" - -if [ ! -x "${binary_path}" ]; then - # will be replaced during build - version="%%version%%" - - work_dir="$(mktemp -d -p /tmp pkgx-kiro-cli-${version}-XXXXXXXXXX)" - trap 'rm -rf "${work_dir}"' EXIT - - dmg_url="https://desktop-release.q.us-east-1.amazonaws.com/${version}/Kiro%20CLI.dmg" - dmg_path="${work_dir}/kiro-cli.dmg" - - echo "Downloading ${dmg_url}..." >&2 - curl -fL -# -o "${dmg_path}" "${dmg_url}" - - mount_point="${work_dir}/mnt" - mkdir -p "${mount_point}" - hdiutil attach "${dmg_path}" -nobrowse -readonly -mountpoint "${mount_point}" >/dev/null - - app_path="${mount_point}/Kiro CLI.app" - - install -d "${binary_dir}" - for binary in kiro-cli kiro-cli-chat kiro-cli-term; do - cp "${app_path}/Contents/MacOS/${binary}" "${binary_dir}/${binary}" - chmod 755 "${binary_dir}/${binary}" - done - - hdiutil detach "${mount_point}" >/dev/null - rm -rf "${work_dir}" -fi - -exec "${binary_path}" "$@"