shellcheck fixes, including real bug
[distro-functions] / src / package-manager-abstractions
index 96e4f6db55335e3263e59aa9d702d87bb28bfa8d..aa14875a093bfee508bd2dca1fa85012cfdc9c85 100644 (file)
@@ -1,5 +1,12 @@
 #!/bin/bash
-# Copyright (C) 2014 Ian Kelling
+# I, Ian Kelling, follow the GNU license recommendations at
+# https://www.gnu.org/licenses/license-recommendations.en.html. They
+# recommend that small programs, < 300 lines, be licensed under the
+# Apache License 2.0. This file contains or is part of one or more small
+# programs. If a small program grows beyond 300 lines, I plan to switch
+# its license to GPL.
+
+# Copyright 2024 Ian Kelling
 
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -35,6 +42,7 @@ if command -v yum &> /dev/null; then
     local s; [[ $EUID != 0 ]] && s=sudo
     $s yum autoremove "$@"
   }
+  # shellcheck disable=SC2120
   pup() { # upgrade
     local s; [[ $EUID != 0 ]] && s=sudo
     $s yum -y distro-sync full "$@"
@@ -106,7 +114,7 @@ elif command -v apt-get &>/dev/null; then
         fi
       fi
     done
-    if (( cachtime > limittime )); then
+    if (( cachetime > limittime )); then
       $s apt-get update
     fi
   }
@@ -183,6 +191,7 @@ EOF
     # seems slightly redundant, but it removes more stuff sometimes.
     $s apt-get -y autoremove
   }
+  # shellcheck disable=SC2120
   pup() { # upgrade
     plock-wait
     pupdate
@@ -234,7 +243,7 @@ EOF
   }
   pkgfiles() {
     if dpkg -s "$1" &>/dev/null; then
-      dpkg-query -L $1
+      dpkg-query -L $1 | while read -r l; do [[ -f $l ]] && printf "%s\n" "$l"; done
     else
       apt-file -x list "^$1$"
     fi
@@ -259,14 +268,15 @@ elif command -v pacman &>/dev/null; then
   aurex() {
     p="$1"
     aur='https://aur.archlinux.org'
-    curl -s $aur/$(curl -s "$aur/rpc.php?type=info&arg=$p" \
-                     | jq -r .results.URLPath) | tar xz
+    curl -s $aur/"$(curl -s "$aur/rpc.php?type=info&arg=$p" \
+                     | jq -r .results.URLPath)" | tar xz
     cd "$p"
 
   }
   pmirror() {
     local s; [[ $EUID != 0 ]] && s=sudo
-    local x=$(mktemp)
+    local x
+    x=$(mktemp)
     curl -s "https://www.archlinux.org/mirrorlist/\
 ?country=US&protocol=https&ip_version=4&ip_version=6&use_mirror_status=on" \
       | sed -r 's/^[ #]*(Server *=)/\1/' > $x
@@ -275,6 +285,7 @@ elif command -v pacman &>/dev/null; then
       rm $x
     fi
   }
+  # shellcheck disable=SC2120
   pup() { # upgrade
     local s; [[ $EUID != 0 ]] && s=sudo
     # file_time + 24 hours > current_time