mirror of
https://github.com/watn3y/steamsalty.git
synced 2025-04-19 16:01:22 +02:00
54 lines
No EOL
1.4 KiB
Bash
54 lines
No EOL
1.4 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
|
|
# Get the current directory name as the project name
|
|
PROJECT_NAME=$(basename "$PWD")
|
|
|
|
# Change to the Go project directory (current directory)
|
|
cd "$PWD" || exit
|
|
|
|
# List of target architectures
|
|
architectures=(
|
|
"linux/amd64"
|
|
"linux/386"
|
|
"linux/arm64"
|
|
"linux/arm/v7"
|
|
"linux/riscv64"
|
|
"windows/amd64"
|
|
"darwin/amd64"
|
|
"darwin/arm64"
|
|
)
|
|
|
|
# Create a build directory if it doesn't exist
|
|
mkdir -p build
|
|
|
|
# Loop over architectures and build for each one
|
|
for arch in "${architectures[@]}"; do
|
|
os=$(echo $arch | cut -d '/' -f 1)
|
|
arch_type=$(echo $arch | cut -d '/' -f 2)
|
|
|
|
# Set the output file name using the project name, os, and arch
|
|
output_file="build/$PROJECT_NAME-$os-$arch_type"
|
|
|
|
# Build the app for the specific architecture
|
|
GOARCH=$arch_type GOOS=$os go build -o "$output_file"
|
|
|
|
# Provide feedback to the user
|
|
if [ $? -eq 0 ]; then
|
|
echo "Successfully built for $arch: $output_file"
|
|
|
|
# Create a tar.gz archive for the individual build
|
|
tar -czf "$output_file.tar.gz" -C build $(basename "$output_file")
|
|
if [ $? -eq 0 ]; then
|
|
echo "Successfully created archive: $output_file.tar.gz"
|
|
|
|
# Delete the executable after archiving
|
|
rm "$output_file"
|
|
echo "Deleted executable: $output_file"
|
|
else
|
|
echo "Failed to create archive for $output_file"
|
|
fi
|
|
else
|
|
echo "Failed to build for $arch"
|
|
fi
|
|
done |