better error handling when vailable formats mismatch
[webi-installers/.git] / _webi / template.sh
index 34484d7b2478354012d2c8155e6b3d7dac0ea2c1..7a16ae275819eaf3c3f0e75c8ec377489fffeecc 100644 (file)
@@ -22,6 +22,7 @@ set -u
 #WEBI_LTS=
 #WEBI_CHANNEL=
 #WEBI_EXT=
+#WEBI_FORMATS=
 #WEBI_PKG_URL=
 #WEBI_PKG_FILE=
 WEBI_UA="$(uname -a)"
@@ -71,19 +72,21 @@ webi_link() {
     fi
 
     if [ -n "$WEBI_SINGLE" ] || [ "single" == "${1:-}" ]; then
-        if [ -d "$pkg_dst_cmd" ]; then
-            rm -rf -i "$pkg_dst_cmd"
-        else
+        if [ -L "$pkg_dst_cmd" ]; then
             rm -f "$pkg_dst_cmd"
+        elif [ -e "$pkg_dst_cmd" ]; then
+            echo "remove $pkg_dst_cmd?"
+            rm -rf -i "$pkg_dst_cmd"
         fi
         ln -s "$pkg_src_cmd" "$pkg_dst_cmd"
     else
         # 'pkg_dst' will default to $HOME/.local/opt/node
         # 'pkg_src' will be the installed version, such as to $HOME/.local/opt/node-v12.8.0
-        if [ -d "$pkg_dst" ]; then
-            rm -rf -i "$pkg_dst"
-        else
+        if [ -L "$pkg_dst" ]; then
             rm -f "$pkg_dst"
+        elif [ -e "$pkg_dst" ]; then
+            echo "remove $pkg_dst?"
+            rm -rf -i "$pkg_dst"
         fi
         ln -s "$pkg_src" "$pkg_dst"
     fi
@@ -126,6 +129,12 @@ webi_download() {
             # TODO pass back requested OS / Arch / Version
             echo "Error: no '$WEBI_NAME' release found for the given OS and architecture by that tag or version"
             echo "       (check that the package name and version are correct)"
+            echo "See $WEBI_RELEASES"
+            echo "        WEBI_PKG=$WEBI_PKG"
+            echo "        WEBI_NAME=$WEBI_NAME"
+            echo "        WEBI_VERSION=$WEBI_VERSION"
+            echo "        WEBI_EXT=$WEBI_EXT"
+            echo "        WEBI_FORMATS=$WEBI_FORMATS"
             exit 1
         fi
         my_url="$WEBI_PKG_URL"
@@ -222,10 +231,11 @@ webi_install() {
         chmod a+x "$pkg_src_cmd"
     else
         mkdir -p "$(dirname $pkg_src)"
-        if [ -d "$pkg_src" ]; then
-            rm -rf -i "$pkg_src"
-        else
+        if [ -L "$pkg_src" ]; then
             rm -f "$pkg_src"
+        elif [ -e "$pkg_src" ]; then
+            echo "remove $pkg_src?"
+            rm -rf -i "$pkg_src"
         fi
         mv ./"$pkg_cmd_name"* "$pkg_src"
     fi