git.sophuwu.com > manweb   
              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