mirror of
https://github.com/Dvorinka/Containr.git
synced 2026-06-03 20:12:58 +00:00
57 lines
1.6 KiB
Bash
Executable File
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"
|