Skip to content

Instantly share code, notes, and snippets.

@jnbdz
Created February 9, 2024 21:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jnbdz/888f7f363658dcf62874406e92fe7265 to your computer and use it in GitHub Desktop.
Save jnbdz/888f7f363658dcf62874406e92fe7265 to your computer and use it in GitHub Desktop.
#!/bin/bash
podman run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.21 go get
podman run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.21 go build -v
#!/bin/bash
goVersion() {
local localPath=$PWD
local goModData=$(cat ${localPath}/go.mod)
local firstRequireLine=$(echo "${goModData}" | awk '/require\s+?\(/{ print NR; exit }')
local lastRequireLine=$(echo "${goModData}" | awk '/\)/{ print NR; exit }')
echo "${goModData}" | sed -e "${firstRequireLine},${lastRequireLine}d" | grep -v require | grep -E "^go ([1-9])([1-9]+)?\.[1-9]([1-9]+)?$" | sed 's/go //'
}
execGo() {
local version=$(goVersion)
local goLib=~/.local/share/go/v${version}
if [ ! -d "${goLib}" ]
then
echo " > Create the directory for storing Go libraries"
mkdir -p ${goLib}
fi
podman run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp -v ~/.local/share/go/v${version}:/go golang:${version} go ${@}
}
execGo ${@}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment