- LICENSE (MIT), CHANGELOG for 0.1.0, README overhaul - docker-compose.release.yml pulling the registry image - Dockerfile cross-compiles the server with cargo-zigbuild for amd64 and arm64; the terminal client is no longer built into the image - Server, install script and settings point to a source install of the terminal client when no prebuilt binaries are available (/info: cli_builds) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
53 lines
1.8 KiB
Bash
53 lines
1.8 KiB
Bash
#!/bin/sh
|
||
# Install the CodeCraft terminal client (codecraft) from __CODECRAFT_URL__
|
||
# curl -fsSL __CODECRAFT_URL__/cli/install.sh | sh
|
||
# Options (environment): CODECRAFT_INSTALL_DIR (default ~/.local/bin)
|
||
set -eu
|
||
|
||
SERVER="__CODECRAFT_URL__"
|
||
DIR="${CODECRAFT_INSTALL_DIR:-$HOME/.local/bin}"
|
||
|
||
os=$(uname -s | tr '[:upper:]' '[:lower:]')
|
||
arch=$(uname -m)
|
||
case "$arch" in
|
||
x86_64|amd64) arch=x86_64 ;;
|
||
aarch64|arm64) arch=aarch64 ;;
|
||
*) echo "codecraft: unsupported architecture $arch" >&2; exit 1 ;;
|
||
esac
|
||
case "$os" in
|
||
linux) ;;
|
||
*) echo "codecraft: no prebuilt binary for $os yet – build from source: cargo install --locked --git https://git.familie-zink.org/zink/codecraft codecraft-cli" >&2; exit 1 ;;
|
||
esac
|
||
|
||
target="$os-$arch"
|
||
url="$SERVER/cli/download/$target"
|
||
mkdir -p "$DIR"
|
||
tmp="$DIR/.codecraft.download"
|
||
echo "Downloading codecraft ($target) from $SERVER …"
|
||
no_build() {
|
||
rm -f "$tmp"
|
||
echo "codecraft: this server has no prebuilt binary for $target." >&2
|
||
echo "Build it from source (needs Rust): cargo install --locked --git https://git.familie-zink.org/zink/codecraft codecraft-cli" >&2
|
||
exit 1
|
||
}
|
||
if command -v curl >/dev/null 2>&1; then
|
||
curl -fsSL "$url" -o "$tmp" || no_build
|
||
elif command -v wget >/dev/null 2>&1; then
|
||
wget -q "$url" -O "$tmp" || no_build
|
||
else
|
||
echo "codecraft: needs curl or wget" >&2; exit 1
|
||
fi
|
||
chmod +x "$tmp"
|
||
mv "$tmp" "$DIR/codecraft"
|
||
echo "Installed $DIR/codecraft ($("$DIR/codecraft" --version 2>/dev/null || echo codecraft))"
|
||
|
||
case ":$PATH:" in
|
||
*":$DIR:"*) ;;
|
||
*) echo "Note: $DIR is not in your PATH – add this to your shell profile:"
|
||
echo " export PATH=\"$DIR:\$PATH\"" ;;
|
||
esac
|
||
echo
|
||
echo "Next steps:"
|
||
echo " codecraft login $SERVER # sign in with your CodeCraft account"
|
||
echo " codecraft # start in your project folder"
|