diff options
Diffstat (limited to 'nvtable')
| -rwxr-xr-x | nvtable | 14 |
1 files changed, 13 insertions, 1 deletions
@@ -49,6 +49,13 @@ declare -A REPO_ALIAS=( [metasploit-framework]="metasploit-framework-bin" ) +# Stanza name -> JSON file carrying the installed version, for apps unpacked +# under /opt that are neither a package, an AppImage, nor a flatpak. Value is +# "<path>:<jq filter>". +declare -A OPT_JSON=( + [Typora]="/opt/Typora-linux-x64/resources/package.json:.version" +) + SHOW_ALL=0; NO_TAKE=0; NO_COLOR=0; NO_EMOJI=0 for a in "$@"; do case "$a" in @@ -140,7 +147,12 @@ if command -v flatpak >/dev/null 2>&1; then fi installed_of() { # echoes "version" or "" ; handles alias + case-insensitive - local n=$1 cand v + local n=$1 cand v spec f + if [[ -n ${OPT_JSON[$n]:-} ]]; then + spec=${OPT_JSON[$n]}; f=${spec%%:*} + [[ -r $f ]] && v=$(jq -r "${spec#*:} // empty" "$f" 2>/dev/null) \ + && [[ -n $v ]] && { echo "$v"; return; } + fi for cand in ${ALIAS[$n]:-$n}; do # Anchored lookup first: correct even when VERSION contains a dash. v=$(pkg_version "$cand") && { echo "$v"; return; } |
