Files
vim-ale/tinygo/install.sh
2023-11-06 16:23:12 -07:00

54 lines
1.4 KiB
Bash

#!/bin/sh
# shellcheck disable=SC2034
# "'pkg_cmd_name' appears unused. Verify it or export it."
__init_tinygo() {
set -e
set -u
##################
# Install tinygo #
##################
# Every package should define these 6 variables
pkg_cmd_name="tinygo"
pkg_dst_cmd="$HOME/.local/opt/tinygo/bin/tinygo"
pkg_dst_dir="$HOME/.local/opt/tinygo"
pkg_dst="$pkg_dst_dir"
pkg_src_cmd="$HOME/.local/opt/tinygo-v$WEBI_VERSION/bin/tinygo"
pkg_src_dir="$HOME/.local/opt/tinygo-v$WEBI_VERSION"
pkg_src="$pkg_src_dir"
# pkg_install must be defined by every package
pkg_install() {
echo "Checking for Go compiler..."
if ! command -v go 2> /dev/null; then
"$HOME/.local/bin/webi" go
export PATH="$HOME/.local/opt/go/bin:$PATH"
fi
# ~/.local/opt/tinygo-v0.30.0/
mkdir -p "$(dirname "${pkg_src_dir}")"
# mv ./tinygo*/ ~/.local/opt/tinygo-v0.30.0/
mv ./tinygo*/ "${pkg_src_dir}"
}
# pkg_get_current_version is recommended, but not required
pkg_get_current_version() {
# 'tinygo --version' has output in this format:
# tinygo version 0.30.0 darwin/amd64 (using go version go1.21.1 and LLVM version 16.0.1)
# This trims it down to just the version number:
# 0.30.0
tinygo version 2> /dev/null |
head -n 1 |
cut -d' ' -f3
}
}
__init_tinygo