feat: gigacode (#92)

This commit is contained in:
Nathan Flurry 2026-02-06 02:55:57 -08:00 committed by GitHub
parent 0a73d1d8e8
commit a02393436c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
40 changed files with 2736 additions and 1327 deletions

View file

@ -0,0 +1,51 @@
#!/usr/bin/env pwsh
$ErrorActionPreference = 'Stop'
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# Create bin directory for gigacode
$BinDir = $env:BIN_DIR
$GigacodeInstall = if ($BinDir) {
$BinDir
} else {
"${Home}\.gigacode\bin"
}
if (!(Test-Path $GigacodeInstall)) {
New-Item $GigacodeInstall -ItemType Directory | Out-Null
}
$GigacodeExe = "$GigacodeInstall\gigacode.exe"
$Version = '__VERSION__'
$FileName = 'gigacode-x86_64-pc-windows-gnu.exe'
Write-Host
Write-Host "> Installing gigacode ${Version}"
# Download binary
$DownloadUrl = "https://releases.rivet.dev/sandbox-agent/${Version}/binaries/${FileName}"
Write-Host
Write-Host "> Downloading ${DownloadUrl}"
Invoke-WebRequest $DownloadUrl -OutFile $GigacodeExe -UseBasicParsing
# Install to PATH
Write-Host
Write-Host "> Installing gigacode"
$User = [System.EnvironmentVariableTarget]::User
$Path = [System.Environment]::GetEnvironmentVariable('Path', $User)
if (!(";${Path};".ToLower() -like "*;${GigacodeInstall};*".ToLower())) {
[System.Environment]::SetEnvironmentVariable('Path', "${Path};${GigacodeInstall}", $User)
$Env:Path += ";${GigacodeInstall}"
Write-Host "Please restart your PowerShell session or run the following command to refresh the environment variables:"
Write-Host "[System.Environment]::SetEnvironmentVariable('Path', '${Path};${GigacodeInstall}', [System.EnvironmentVariableTarget]::Process)"
}
Write-Host
Write-Host "> Checking installation"
gigacode.exe --version
Write-Host
Write-Host "gigacode was installed successfully to ${GigacodeExe}."
Write-Host "Run 'gigacode --help' to get started."
Write-Host

View file

@ -0,0 +1,103 @@
#!/bin/sh
# shellcheck enable=add-default-case
# shellcheck enable=avoid-nullary-conditions
# shellcheck enable=check-unassigned-uppercase
# shellcheck enable=deprecate-which
# shellcheck enable=quote-safe-variables
# shellcheck enable=require-variable-braces
set -eu
rm -rf /tmp/gigacode_install
mkdir /tmp/gigacode_install
cd /tmp/gigacode_install
GIGACODE_VERSION="${GIGACODE_VERSION:-__VERSION__}"
UNAME="$(uname -s)"
ARCH="$(uname -m)"
# Find asset suffix
if [ "$(printf '%s' "$UNAME" | cut -c 1-6)" = "Darwin" ]; then
echo
echo "> Detected macOS"
if [ "$ARCH" = "x86_64" ]; then
FILE_NAME="gigacode-x86_64-apple-darwin"
elif [ "$ARCH" = "arm64" ]; then
FILE_NAME="gigacode-aarch64-apple-darwin"
else
echo "Unknown arch $ARCH" 1>&2
exit 1
fi
elif [ "$(printf '%s' "$UNAME" | cut -c 1-5)" = "Linux" ]; then
echo
echo "> Detected Linux ($(getconf LONG_BIT) bit)"
FILE_NAME="gigacode-x86_64-unknown-linux-musl"
else
echo "Unable to determine platform" 1>&2
exit 1
fi
# Determine install location
set +u
if [ -z "$BIN_DIR" ]; then
BIN_DIR="/usr/local/bin"
fi
set -u
INSTALL_PATH="$BIN_DIR/gigacode"
if [ ! -d "$BIN_DIR" ]; then
# Find the base parent directory. We're using mkdir -p, which recursively creates directories, so we can't rely on `dirname`.
CHECK_DIR="$BIN_DIR"
while [ ! -d "$CHECK_DIR" ] && [ "$CHECK_DIR" != "/" ]; do
CHECK_DIR=$(dirname "$CHECK_DIR")
done
# Check if the directory is writable
if [ ! -w "$CHECK_DIR" ]; then
echo
echo "> Creating directory $BIN_DIR (requires sudo)"
sudo mkdir -p "$BIN_DIR"
else
echo
echo "> Creating directory $BIN_DIR"
mkdir -p "$BIN_DIR"
fi
fi
# Download binary
URL="https://releases.rivet.dev/sandbox-agent/${GIGACODE_VERSION}/binaries/${FILE_NAME}"
echo
echo "> Downloading $URL"
curl -fsSL "$URL" -o gigacode
chmod +x gigacode
# Move binary
if [ ! -w "$BIN_DIR" ]; then
echo
echo "> Installing gigacode to $INSTALL_PATH (requires sudo)"
sudo mv ./gigacode "$INSTALL_PATH"
else
echo
echo "> Installing gigacode to $INSTALL_PATH"
mv ./gigacode "$INSTALL_PATH"
fi
# Check if path may be incorrect
case ":$PATH:" in
*:$BIN_DIR:*) ;;
*)
echo "WARNING: $BIN_DIR is not in \$PATH"
echo "For instructions on how to add it to your PATH, visit:"
echo "https://opensource.com/article/17/6/set-path-linux"
;;
esac
echo
echo "> Checking installation"
"$BIN_DIR/gigacode" --version
echo
echo "gigacode was installed successfully."
echo "Run 'gigacode --help' to get started."