Files
Containr/scripts/build-cli.sh
T

57 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
# Build CLI script for Containr
set -e
echo "🔨 Building Containr CLI..."
# Get version from git tag or use default
VERSION=${VERSION:-$(git describe --tags --always --dirty 2>/dev/null || echo "dev")}
BUILD_TIME=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown")
# Build flags
LDFLAGS="-X main.Version=${VERSION} -X main.BuildTime=${BUILD_TIME} -X main.GitCommit=${COMMIT}"
# Build for multiple platforms
PLATFORMS="linux/amd64 linux/arm64 darwin/amd64 darwin/arm64 windows/amd64"
for platform in $PLATFORMS; do
GOOS=${platform%/*}
GOARCH=${platform#*/}
OUTPUT_NAME="containr-${GOOS}-${GOARCH}"
if [ "$GOOS" = "windows" ]; then
OUTPUT_NAME="${OUTPUT_NAME}.exe"
fi
echo "📦 Building for ${platform}..."
GOOS=$GOOS GOARCH=$GOARCH go build \
-ldflags "$LDFLAGS" \
-o "bin/${OUTPUT_NAME}" \
./cmd/cli
echo "✅ Built bin/${OUTPUT_NAME}"
done
echo "🎉 CLI build complete!"
echo ""
echo "Available binaries:"
ls -la bin/containr-*
# Create a symlink for the current platform
CURRENT_OS=$(uname -s | tr '[:upper:]' '[:lower:]')
CURRENT_ARCH=$(uname -m | sed 's/x86_64/amd64/' | sed 's/arm64/arm64/')
if [ -f "bin/containr-${CURRENT_OS}-${CURRENT_ARCH}" ]; then
ln -sf "containr-${CURRENT_OS}-${CURRENT_ARCH}" bin/containr
echo "🔗 Created symlink: bin/containr -> containr-${CURRENT_OS}-${CURRENT_ARCH}"
fi
echo ""
echo "To install CLI:"
echo " sudo cp bin/containr /usr/local/bin/"
echo " # or"
echo " export PATH=\$PWD/bin:\$PATH"