85 lines
1.5 KiB
Bash
Executable file
85 lines
1.5 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
# Initialize variables
|
|
SKIP_CONFIG=""
|
|
PORT=""
|
|
DOMAIN=""
|
|
CONFIG_FILE=""
|
|
BUILD_ONLY=0
|
|
PLATFORM="linux"
|
|
BUILD_OUTPUT="qgato"
|
|
|
|
# Parse arguments
|
|
while [ $# -gt 0 ]; do
|
|
case $1 in
|
|
--port)
|
|
PORT=$2
|
|
shift 2
|
|
;;
|
|
--domain)
|
|
DOMAIN=$2
|
|
shift 2
|
|
;;
|
|
--config)
|
|
CONFIG_FILE=$2
|
|
shift 2
|
|
;;
|
|
--platform)
|
|
PLATFORM=$2
|
|
shift 2
|
|
;;
|
|
--build-only)
|
|
BUILD_ONLY=1
|
|
shift
|
|
;;
|
|
--skip-config-check)
|
|
SKIP_CONFIG="--skip-config-check"
|
|
shift
|
|
;;
|
|
*)
|
|
echo "Unknown argument: $1"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Get the directory of the script
|
|
SCRIPT_DIR=$(dirname "$0")
|
|
|
|
# Set GOOS and output filename
|
|
if [ "$PLATFORM" = "windows" ]; then
|
|
GOOS=windows
|
|
BUILD_OUTPUT="qgato.exe"
|
|
else
|
|
GOOS=linux
|
|
BUILD_OUTPUT="qgato"
|
|
fi
|
|
|
|
# Clean and build
|
|
echo "Cleaning previous build..."
|
|
rm -f "$SCRIPT_DIR/$BUILD_OUTPUT"
|
|
|
|
echo "Building application for $PLATFORM..."
|
|
GOOS=$GOOS go build -ldflags="-s -w" -o "$SCRIPT_DIR/$BUILD_OUTPUT" .
|
|
if [ $? -eq 0 ]; then
|
|
echo "Build successful! Output: $SCRIPT_DIR/$BUILD_OUTPUT"
|
|
else
|
|
echo "Build failed!"
|
|
exit 1
|
|
fi
|
|
|
|
# Skip execution if build-only
|
|
if [ "$BUILD_ONLY" -eq 1 ]; then
|
|
exit 0
|
|
fi
|
|
|
|
# Construct the run command
|
|
CMD="$SCRIPT_DIR/$BUILD_OUTPUT $SKIP_CONFIG"
|
|
[ -n "$PORT" ] && CMD="$CMD --port $PORT"
|
|
[ -n "$DOMAIN" ] && CMD="$CMD --domain $DOMAIN"
|
|
[ -n "$CONFIG_FILE" ] && CMD="$CMD --config $CONFIG_FILE"
|
|
|
|
echo "Starting application with command: $CMD"
|
|
|
|
# Run the built executable
|
|
eval $CMD
|