build-cli.sh 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #!/bin/bash
  2. set -eu
  3. npm run protos
  4. npm run protos-go
  5. mkdir -p dist-standalone/extension
  6. cp package.json dist-standalone/extension
  7. # Extract version information for ldflags
  8. CORE_VERSION=$(node -p "require('./package.json').version")
  9. CLI_VERSION=$(node -p "require('./cli/package.json').version")
  10. COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown")
  11. DATE=$(date -u '+%Y-%m-%dT%H:%M:%SZ')
  12. BUILT_BY="${USER:-unknown}"
  13. # Build ldflags to inject version info
  14. LDFLAGS="-X 'github.com/cline/cli/pkg/cli/global.Version=${CORE_VERSION}' \
  15. -X 'github.com/cline/cli/pkg/cli/global.CliVersion=${CLI_VERSION}' \
  16. -X 'github.com/cline/cli/pkg/cli/global.Commit=${COMMIT}' \
  17. -X 'github.com/cline/cli/pkg/cli/global.Date=${DATE}' \
  18. -X 'github.com/cline/cli/pkg/cli/global.BuiltBy=${BUILT_BY}'"
  19. cd cli
  20. # Detect current platform
  21. OS=$(uname -s | tr '[:upper:]' '[:lower:]')
  22. ARCH=$(uname -m)
  23. # Normalize architecture names
  24. case "$ARCH" in
  25. x86_64)
  26. ARCH="amd64"
  27. ;;
  28. aarch64)
  29. ARCH="arm64"
  30. ;;
  31. arm64)
  32. ARCH="arm64"
  33. ;;
  34. esac
  35. # Build for current platform only
  36. echo "Building for current platform ($OS-$ARCH)..."
  37. GO111MODULE=on go build -ldflags "$LDFLAGS" -o bin/cline ./cmd/cline
  38. echo " ✓ bin/cline built"
  39. GO111MODULE=on go build -ldflags "$LDFLAGS" -o bin/cline-host ./cmd/cline-host
  40. echo " ✓ bin/cline-host built"
  41. echo ""
  42. echo "Build complete for current platform!"
  43. # Copy binaries to dist-standalone/bin with platform-specific names AND generic names
  44. cd ..
  45. mkdir -p dist-standalone/bin
  46. cp cli/bin/cline dist-standalone/bin/cline
  47. cp cli/bin/cline dist-standalone/bin/cline-${OS}-${ARCH}
  48. cp cli/bin/cline-host dist-standalone/bin/cline-host
  49. cp cli/bin/cline-host dist-standalone/bin/cline-host-${OS}-${ARCH}
  50. echo "Copied binaries to dist-standalone/bin/ (both generic and platform-specific names)"