Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
kardolus
GitHub Repository: kardolus/chatgpt-cli
Path: blob/main/scripts/binaries.sh
2649 views
1
#!/usr/bin/env bash
2
set -euo pipefail
3
4
cd "$( dirname "${BASH_SOURCE[0]}" )/.."
5
mkdir -p bin
6
7
GIT_COMMIT=$(git rev-list -1 HEAD)
8
GIT_TAGS=$(git rev-list --tags --max-count=1)
9
10
# Add an array of common OSes and architectures
11
TARGETS=(
12
"darwin:amd64"
13
"darwin:arm64"
14
"linux:amd64"
15
"linux:arm64"
16
"linux:386"
17
"windows:amd64"
18
"freebsd:amd64"
19
"freebsd:arm64"
20
)
21
22
for b in $(ls cmd); do
23
for target in "${TARGETS[@]}"; do
24
IFS=":" read -ra os_arch <<< "$target"
25
os="${os_arch[0]}"
26
arch="${os_arch[1]}"
27
28
binary_name="$b-$os-$arch"
29
[ "$os" == "windows" ] && binary_name="$b-$os-$arch.exe"
30
31
echo -n "Building $b for $os/$arch..."
32
33
if [ ! -z "$GIT_TAGS" ]; then
34
GIT_VERSION=$(git describe --tags $GIT_TAGS)
35
GOOS=$os GOARCH=$arch go build -mod=vendor -ldflags="-s -w -X main.GitCommit=$GIT_COMMIT -X main.GitVersion=$GIT_VERSION" -o "bin/$binary_name" -a cmd/$b/main.go
36
else
37
GOOS=$os GOARCH=$arch go build -mod=vendor -ldflags="-s -w -X main.GitCommit=$GIT_COMMIT" -o "bin/$binary_name" -a cmd/$b/main.go
38
fi
39
40
echo "done"
41
done
42
done
43
44