-# Test for existing version
-set +e
-cur_go="$(command -v go)"
-set -e
-cur_go_version=""
-if [ -n "$cur_go" ]; then
- cur_go_version=$(go version | cut -d' ' -f3 | sed 's:go::')
-
- if [ "$cur_go_version" == "$(echo $WEBI_VERSION | sed 's:\.0::g')" ]; then
- echo "go$WEBI_VERSION already installed at $cur_go"
- exit 0
- else
- if [ "$cur_go" != "$common_go_home/bin/go" ]; then
- echo "WARN: possible conflict between go${WEBI_VERSION} and go${cur_go_version} at ${cur_go}"
- fi
- if [ -x "$new_go" ]; then
- update_go_home
- echo "switched to go${WEBI_VERSION} at $new_go_home"
- exit 0
- fi
- fi
-fi
-
-
-# Note: this file is `source`d by the true installer and hence will have the webi functions
-
-# because we created releases.js we can use webi_download()
-# downloads go to ~/Downloads
-webi_download
-
-# because this is tar or zip, we can webi_extract()
-# extracts to the WEBI_TMP directory, raw (no --strip-prefix)
-webi_extract
-
-pushd "$WEBI_TMP" 2>&1 >/dev/null
- echo Installing go v${WEBI_VERSION} as "$new_go"
-
- # simpler for single-binary commands
- #mv ./example*/bin/example "$HOME/.local/bin"
-
- # best for packages and toolchains
- rm -rf "$new_go_home"
- if [ -n "$(command -v rsync 2>/dev/null | grep rsync)" ]; then
- rsync -Krl ./go*/ "$new_go_home/" 2>/dev/null
- else
- cp -Hr ./go*/* "$new_go_home/" 2>/dev/null
- cp -Hr ./go*/.* "$new_go_home/" 2>/dev/null
- fi
- rm -rf ./go*
+pkg_link_new_version() {
+ # 'pkg_common_opt' will default to $HOME/.local/opt/go
+ # 'pkg_new_opt' will be the installed version, such as to $HOME/.local/opt/go-v1.14.2
+ rm -rf "$pkg_common_opt"
+ ln -s "$pkg_new_opt" "$pkg_common_opt"