109 lines
4.1 KiB
Bash
Executable File
109 lines
4.1 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# ──────────────────────────────────────────────
|
|
# Verzija
|
|
# ──────────────────────────────────────────────
|
|
read -p "Verzija (npr. 0.1.1): " VERZIJA
|
|
VERZIJA=${VERZIJA:-"0.0.1"}
|
|
|
|
# ──────────────────────────────────────────────
|
|
# Okruženje
|
|
# ──────────────────────────────────────────────
|
|
echo ""
|
|
echo "Okruženje:"
|
|
echo " 1) production"
|
|
echo " 2) development"
|
|
read -p "Izbor [1/2, podrazumevano 1]: " OKR_IZBOR
|
|
OKR_IZBOR=${OKR_IZBOR:-1}
|
|
|
|
if [ "$OKR_IZBOR" = "2" ]; then
|
|
OKRUZENJE="development"
|
|
LDFLAGS="-X main.Verzija=dev-${VERZIJA}"
|
|
NAZIV="ntech-dev"
|
|
else
|
|
OKRUZENJE="production"
|
|
LDFLAGS="-X main.Verzija=${VERZIJA} -s -w"
|
|
NAZIV="ntech"
|
|
fi
|
|
|
|
# ──────────────────────────────────────────────
|
|
# Ciljni OS
|
|
# ──────────────────────────────────────────────
|
|
echo ""
|
|
echo "Ciljni OS:"
|
|
echo " 1) Linux (amd64)"
|
|
echo " 2) Windows (amd64)"
|
|
read -p "Izbor [1/2, podrazumevano 1]: " OS_IZBOR
|
|
OS_IZBOR=${OS_IZBOR:-1}
|
|
|
|
if [ "$OS_IZBOR" = "2" ]; then
|
|
GOOS_VAL="windows"
|
|
NAZIV="${NAZIV}.exe"
|
|
else
|
|
GOOS_VAL="linux"
|
|
fi
|
|
|
|
# ──────────────────────────────────────────────
|
|
# UPX kompresija
|
|
# ──────────────────────────────────────────────
|
|
echo ""
|
|
UPX_DOSTUPAN=false
|
|
if command -v upx &>/dev/null; then
|
|
UPX_DOSTUPAN=true
|
|
read -p "Kompresovati UPX-om? [d/N]: " UPX_IZBOR
|
|
else
|
|
echo "UPX nije instaliran — kompresija preskočena."
|
|
UPX_IZBOR="n"
|
|
fi
|
|
|
|
# ──────────────────────────────────────────────
|
|
# Sažetak pre builda
|
|
# ──────────────────────────────────────────────
|
|
echo ""
|
|
echo "──────────────────────────────────────────"
|
|
echo " Okruženje : ${OKRUZENJE}"
|
|
echo " Verzija : ${VERZIJA}"
|
|
echo " OS : ${GOOS_VAL}/amd64"
|
|
echo " Izlaz : ${NAZIV}"
|
|
if [ "$UPX_DOSTUPAN" = true ] && [[ "$UPX_IZBOR" =~ ^[dDyY] ]]; then
|
|
echo " UPX : da"
|
|
else
|
|
echo " UPX : ne"
|
|
fi
|
|
echo "──────────────────────────────────────────"
|
|
echo ""
|
|
read -p "Pokrenuti build? [D/n]: " POTVRDA
|
|
POTVRDA=${POTVRDA:-"d"}
|
|
if [[ ! "$POTVRDA" =~ ^[dDyY] ]]; then
|
|
echo "Build otkazan."
|
|
exit 0
|
|
fi
|
|
|
|
# ──────────────────────────────────────────────
|
|
# Build
|
|
# ──────────────────────────────────────────────
|
|
echo ""
|
|
echo "Buildovanje..."
|
|
CGO_ENABLED=0 GOARCH=amd64 GOOS=${GOOS_VAL} go build \
|
|
-ldflags "${LDFLAGS}" \
|
|
-o "${NAZIV}" \
|
|
./cmd/ntech
|
|
|
|
echo "Build završen: ${NAZIV}"
|
|
ls -lh "${NAZIV}"
|
|
|
|
# ──────────────────────────────────────────────
|
|
# UPX
|
|
# ──────────────────────────────────────────────
|
|
if [ "$UPX_DOSTUPAN" = true ] && [[ "$UPX_IZBOR" =~ ^[dDyY] ]]; then
|
|
echo ""
|
|
echo "Kompresovanje sa UPX..."
|
|
upx --best "${NAZIV}"
|
|
echo "Nakon kompresije:"
|
|
ls -lh "${NAZIV}"
|
|
fi
|
|
|
|
echo ""
|
|
echo "Gotovo."
|