56
#!/bin/bash
dir="$PWD"
goarch() {
[[ -n "GOARCH" ]] && go build -ldflags="-w -s" -trimpath -o "$dir/build/manweb_$GOARCH" "$dir/main.go" ;
}
gobuild() {
case "$1" in
"amd"|"amd64"|"x86"|"x86_64")
export GOARCH="amd64" ;
echo building "build/manweb_$GOARCH" ;
goarch ;;
"arm"|"arm64")
export GOARCH="arm64" ;
echo building "build/manweb_$GOARCH" ;
goarch ;;
*)
echo "invalid arch: $i" ;
echo "valid values: amd64, arm64" ;
return 1;;
esac
return 0
}
setVersion() {
if [[ -z "$1" ]]; then
echo "invalid version: $1" ;
return 1 ;
fi;
local uwu="$1" ;
uwu=$(printf "%d.%d.%d\n" ${uwu//./ } 2> /dev/null)
if [[ $? -ne 0 ]]; then
echo "invalid version: $1" ;
return 1 ;
fi
for i in {amd64,arm64}; do
sed --in-place "s/^version:.*\$/version: \"$uwu\"/g" "$dir/extra/nfpm_$i.yaml" ;
done
return 0 ;
}
mkDeb() {
cd "$dir/extra";
vers=$(grep 'version:' nfpm_amd64.yaml)
vers=${vers:10:-1}
for i in {amd64,arm64}; do
gobuild "$i" && \
nfpm pkg --packager deb --config "nfpm_$i.yaml" --target "$dir/build/manweb_${vers}_${i}.deb" && \
echo "manweb_${vers}_${i}.deb created" || \
echo "failed to build deb for $i" ;
done
}
setVersion "$1" && mkDeb