X-Git-Url: https://git.josue.xyz/?a=blobdiff_plain;f=webi%2Ftemplate.bash;h=f5147ea8ec6f815ce3b6302437beaa56c0225d58;hb=969df21e47c4d8312925638739a23eef0c349e1c;hp=9ea165ed92d80d5bdd5557cabd487296328df97e;hpb=0749de065d9ada0f53efcf27ac9d1f6655954489;p=webi-installers%2F.git diff --git a/webi/template.bash b/webi/template.bash index 9ea165e..f5147ea 100644 --- a/webi/template.bash +++ b/webi/template.bash @@ -11,6 +11,7 @@ set -u #WEBI_HOST= #WEBI_RELEASES= #WEBI_CSV= +#WEBI_TAG= #WEBI_VERSION= #WEBI_MAJOR= #WEBI_MINOR= @@ -42,6 +43,38 @@ export WEBI_CURL="$(command -v curl)" export WEBI_WGET="$(command -v wget)" set -e +webi_check() { + # Test for existing version + set +e + my_current_cmd="$(command -v "$pkg_cmd_name")" + set -e + if [ -n "$my_current_cmd" ]; then + pkg_current_version="$(pkg_get_current_version)" + # remove trailing '.0's for golang's sake + my_current_version="$(echo $pkg_current_version | sed 's:\.0::g')" + my_src_version="$(echo $WEBI_VERSION | sed 's:\.0::g')" + if [ -n "$(command -v pkg_format_cmd_version)" ]; then + my_canonical_name="$(pkg_format_cmd_version "$WEBI_VERSION")" + else + #my_canonical_name="$WEBI_NAME $WEBI_VERSION" + my_canonical_name="$pkg_cmd_name v$WEBI_VERSION" + fi + if [ "$my_src_version" == "$my_current_version" ]; then + echo "$my_canonical_name already installed at $my_current_cmd" + exit 0 + else + if [ "$my_current_cmd" != "$pkg_dst_cmd" ]; then + echo "WARN: possible conflict between $my_canonical_name and $pkg_current_version at $my_current_cmd" + fi + if [ -x "$pkg_src_cmd" ]; then + pkg_link_src_dst + echo "switched to $my_canonical_name at $pkg_src" + exit 0 + fi + fi + fi +} + webi_download() { if [ -n "${1:-}" ]; then my_url="$1" @@ -132,4 +165,32 @@ webi_path_add() { ## ## +if [ -n "$(command -v pkg_install)" ]; then + pkg_cmd_name="${pkg_cmd_name:-$WEBI_NAME}" + + pkg_dst="${pkg_dst:-$HOME/.local/opt/$pkg_cmd_name}" + pkg_dst_bin="${pkg_dst_bin:-$pkg_dst/bin}" + pkg_dst_cmd="${pkg_dst_cmd:-$pkg_dst_bin/$pkg_cmd_name}" + + pkg_src="${pkg_src:-$HOME/.local/opt/$pkg_cmd_name-v$WEBI_VERSION}" + pkg_src_bin="${pkg_src_bin:-$pkg_src/bin}" + pkg_src_cmd="${pkg_src_cmd:-$pkg_src_bin/$pkg_cmd_name}" + + [ -n "$(command -v pkg_pre_install)" ] && pkg_pre_install + + echo "Installing '$pkg_cmd_name' v$WEBI_VERSION as $pkg_src_cmd" + pkg_install + + [ -n "$(command -v pkg_post_install)" ] && pkg_post_install + + if [ -n "$(command -v pkg_post_install_message)" ]; then + pkg_post_install_message + else + echo "Installed '$pkg_cmd_name' v$WEBI_VERSION as $pkg_src_cmd" + fi + echo "" +fi + +rm -rf "$WEBI_TMP" + }