Browse Source

fix(universalarchive): make plugin zsh-only to fix `realpath` not found error

Fixes #9586
Marc Cornellà 3 years ago
parent
commit
3635d7cf7e
1 changed files with 8 additions and 8 deletions
  1. 8 8
      plugins/universalarchive/universalarchive.plugin.zsh

+ 8 - 8
plugins/universalarchive/universalarchive.plugin.zsh

@@ -10,28 +10,28 @@ Supported archive formats are:
 tlz (tar.lzma), txz (tar.xz), tZ (tar.Z), xz, Z, zip, and zst."
 
   if [[ $# -lt 2 ]]; then
-    echo >&2 "$usage"
+    print -u2 -- "$usage"
     return 1
   fi
 
   local ext="$1"
-  local input="$(realpath "$2")"
+  local input="${2:a}"
 
   shift
 
   if [[ ! -e "$input" ]]; then
-    echo >&2 "$input not found"
+    print -u2 -- "$input not found"
     return 1
   fi
 
   # generate output file name
   local output
   if [[ $# -gt 1 ]]; then
-    output="$(basename "${input%/*}")"
+    output="${input:h:t}"
   elif [[ -f "$input" ]]; then
-    output="$(basename "${input%.[^.]*}")"
+    output="${input:r:t}"
   elif [[ -d "$input" ]]; then
-    output="$(basename "${input}")"
+    output="${input:t}"
   fi
 
   # if output file exists, generate a random name
@@ -44,7 +44,7 @@ tlz (tar.lzma), txz (tar.xz), tZ (tar.Z), xz, Z, zip, and zst."
 
   # safety check
   if [[ -f "$output" ]]; then
-    echo >&2 "output file '$output' already exists. Aborting"
+    print -u2 -- "output file '$output' already exists. Aborting"
     return 1
   fi
 
@@ -65,6 +65,6 @@ tlz (tar.lzma), txz (tar.xz), tZ (tar.Z), xz, Z, zip, and zst."
     Z)            compress -vcf               "${@}" > "${output}" ;;
     zip)          zip -rull                   "${output}"   "${@}" ;;
     zst)          zstd -c -T0                 "${@}" > "${output}" ;;
-    *) echo >&2 "$usage"; return 1 ;;
+    *) print -u2 -- "$usage"; return 1 ;;
   esac
 }