diff --git a/SPEC.md b/SPEC.md index 5d881c8..961a824 100644 --- a/SPEC.md +++ b/SPEC.md @@ -293,6 +293,7 @@ nano, ncdu, parallel, procps, shellcheck, sudo, tini, tree, unzip, vim, zsh | `EXTRA_DATALAD` | `""` | Set to `"1"` to enable DataLad | | `EXTRA_JJ` | `""` | Set to `"1"` to enable Jujutsu | | `EXTRA_DENO` | `""` | Set to `"1"` to enable Deno | +| `EXTRA_ENTIRE` | `""` | Set to `"1"` to enable Entire CLI | | `JJ_VERSION` | `0.38.0` | Jujutsu version | | `DENO_VERSION` | `""` | Deno version (empty = latest) | | `GIT_DELTA_VERSION` | `0.18.2` | git-delta version | @@ -307,6 +308,7 @@ nano, ncdu, parallel, procps, shellcheck, sudo, tini, tree, unzip, vim, zsh | `datalad` | `uv tool install --with datalad-container --with datalad-next datalad` | | `jj` | Musl binary from GitHub release + zsh completion | | `deno` | Deno JS/TS runtime via install script + zsh/bash PATH setup | +| `entire` | Entire CLI via temporary Go toolchain install (`entireio/cli` v0.5.3) | ### Container Environment @@ -337,7 +339,7 @@ setup-yolo.sh [OPTIONS] | `--build=MODE` | `auto` | `auto`, `yes`, `no` | Image build control | | `--install=MODE` | `auto` | `auto`, `yes`, `no` | Script install control | | `--packages=PKGS` | `""` | comma/space-separated | Extra apt packages | -| `--extras=EXTRAS` | `""` | `cuda`, `playwright`, `datalad`, `jj`, `deno`, `all` | Predefined extras | +| `--extras=EXTRAS` | `""` | `cuda`, `playwright`, `datalad`, `jj`, `deno`, `entire`, `all` | Predefined extras | ### Build Behavior diff --git a/images/Dockerfile b/images/Dockerfile index ce8f24b..f811b7e 100644 --- a/images/Dockerfile +++ b/images/Dockerfile @@ -177,6 +177,28 @@ RUN if [ "$EXTRA_DENO" = "1" ]; then \ ENV PATH="/home/node/.deno/bin:$PATH" +# Install Entire CLI via Go +ARG EXTRA_ENTIRE="" + +RUN if [ "$EXTRA_ENTIRE" = "1" ]; then \ + ARCH=$(uname -m) && \ + case "$ARCH" in \ + x86_64) GOARCH=amd64 ;; \ + aarch64) GOARCH=arm64 ;; \ + *) echo "Unsupported architecture: $ARCH" && exit 1 ;; \ + esac && \ + GO_VERSION=1.24.2 && \ + wget -qO /tmp/go.tar.gz "https://go.dev/dl/go${GO_VERSION}.linux-${GOARCH}.tar.gz" && \ + mkdir -p /tmp/goroot && \ + tar -xzf /tmp/go.tar.gz -C /tmp/goroot --strip-components=1 && \ + GOROOT=/tmp/goroot GOPATH=/tmp/gopath PATH="/tmp/goroot/bin:$PATH" \ + go install github.com/entireio/cli/cmd/entire@v0.5.3 && \ + mkdir -p ~/.local/bin && \ + mv /tmp/gopath/bin/entire ~/.local/bin/entire && \ + chmod -R u+w /tmp/gopath && \ + rm -rf /tmp/go.tar.gz /tmp/goroot /tmp/gopath; \ + fi + # Use tini as init process to properly reap zombie processes ENTRYPOINT ["/usr/bin/tini", "--"] CMD ["claude"] diff --git a/setup-yolo.sh b/setup-yolo.sh index ddc5929..b61d6c4 100755 --- a/setup-yolo.sh +++ b/setup-yolo.sh @@ -36,6 +36,7 @@ OPTIONS: datalad - DataLad with datalad-container and datalad-next jj - Jujutsu version control system deno - Deno JS/TS runtime and formatter + entire - Entire CLI (entireio/cli) all - Enable all extras EXAMPLES: @@ -102,12 +103,12 @@ while [[ $# -gt 0 ]]; do EXTRAS="${1#*=}" # Expand "all" to all available extras if [[ "$EXTRAS" == "all" ]]; then - EXTRAS="cuda,playwright,datalad,jj,deno" + EXTRAS="cuda,playwright,datalad,jj,deno,entire" fi # Validate extras for extra in ${EXTRAS//,/ }; do - if [[ ! "$extra" =~ ^(cuda|playwright|datalad|jj|deno)$ ]]; then - echo "Error: Unknown extra '$extra'. Valid extras: cuda, playwright, datalad, jj, deno, all" + if [[ ! "$extra" =~ ^(cuda|playwright|datalad|jj|deno|entire)$ ]]; then + echo "Error: Unknown extra '$extra'. Valid extras: cuda, playwright, datalad, jj, deno, entire, all" exit 1 fi done