#!/bin/sh set -e # Vikasit Code Installer # Usage: curl -fsSL https://vikasit.ai/install | sh REPO="Vikasit-AI/releases" BINARY="vikasit" # Detect OS and architecture detect_platform() { OS=$(uname -s | tr '[:upper:]' '[:lower:]') ARCH=$(uname -m) case "$OS" in linux) OS="linux" ;; darwin) OS="darwin" ;; *) echo "Unsupported OS: $OS"; exit 1 ;; esac case "$ARCH" in x86_64|amd64) ARCH="x64" ;; aarch64|arm64) ARCH="arm64" ;; *) echo "Unsupported architecture: $ARCH"; exit 1 ;; esac echo "${OS}-${ARCH}" } # Get latest version from GitHub get_latest_version() { curl -fsSL "https://api.github.com/repos/$REPO/releases/latest" | grep '"tag_name"' | sed 's/.*"v\([^"]*\)".*/\1/' } PLATFORM=$(detect_platform) VERSION=$(get_latest_version) if [ -z "$VERSION" ]; then echo "Failed to fetch latest version" exit 1 fi echo "Installing Vikasit Code v$VERSION for $PLATFORM..." # Determine file extension case "$PLATFORM" in linux-*) EXT="tar.gz" ;; darwin-*) EXT="zip" ;; esac URL="https://github.com/$REPO/releases/download/v$VERSION/vikasit-code-$PLATFORM.$EXT" INSTALL_DIR="/usr/local/bin" TMP_DIR=$(mktemp -d) echo "Downloading from $URL..." curl -fsSL "$URL" -o "$TMP_DIR/vikasit.$EXT" echo "Extracting..." cd "$TMP_DIR" case "$EXT" in tar.gz) tar xzf "vikasit.$EXT" ;; zip) unzip -q "vikasit.$EXT" ;; esac echo "Installing to $INSTALL_DIR..." if [ -w "$INSTALL_DIR" ]; then mv "$BINARY" "$INSTALL_DIR/$BINARY" else sudo mv "$BINARY" "$INSTALL_DIR/$BINARY" fi chmod +x "$INSTALL_DIR/$BINARY" # Cleanup rm -rf "$TMP_DIR" echo "" echo "✓ Vikasit Code v$VERSION installed successfully!" echo "" echo "Run 'vikasit' to get started."