Please email me if you have a patches, bugs, feedback, or republish this
somewhere else: Ian Kelling <ian@iankelling.org>.
+
+See the source files for license info.
#!/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.
}
distro-name-compat() {
- local x=$(distro-name)
+ local x
+ x=$(distro-name)
case $x in
trisquel)
echo ubuntu
;;
*)
- echo $x
+ printf "%s\n" "$x"
;;
esac
}
distro-name-ver() {
- echo $(distro-name)$(debian-archive)
+ printf "%s\n" "$(distro-name)$(debian-archive)"
}
distro-num() {
# o = origin
# c = component (licensing component)
# l = label (Debian{,-Security,-Updates})
- local d=$(distro-name)
+ local d
+ d=$(distro-name)
# goto b for archive lines we are interested in, a for lines we arent
# print priority + archive name. priority is in
# the previous line from the archive line.
shortest=$name
continue
fi
- if [[ $pri != $highpri ]]; then
+ if [[ $pri != "$highpri" ]]; then
break
fi
if (( ${#shortest} > ${#name} )); then
# formatted for use in pfile() in package-manager-abstractions
positive-origins() {
isdeb || return 0
- local archive expression pri name highpri shortest
- local policy="${1:-$(apt-cache policy)}" || return $?
+ local archive expression pri name highpri shortest policy
+ # In theory we might want a policy subset, we could alter this to pass
+ # it in.
+ policy="(apt-cache policy)"
# a = archive
# n = codename
# o = origin
debian-codename() {
isdeb || return 0
- local policy="$(apt-cache policy)" || return $?
+ local policy
+ policy="$(apt-cache policy)"
archive=$(debian-archive "$policy")
- echo "$policy" | sed -rn "s/^.*a=$archive,n=([a-z]+).*/\1/p;T;q" || [[ $? == 141 ]]
+ printf "%s\n" "$policy" | sed -rn "s/^.*a=$archive,n=([a-z]+).*/\1/p;T;q" || [[ $? == 141 ]]
}
debian-codename-compat() {
- local n=$(debian-codename)
+ local n
+ n=$(debian-codename)
case $n in
flidas)
echo xenial
#!/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.
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 "$@"
fi
fi
done
- if (( cachtime > limittime )); then
+ if (( cachetime > limittime )); then
$s apt-get update
fi
}
# seems slightly redundant, but it removes more stuff sometimes.
$s apt-get -y autoremove
}
+ # shellcheck disable=SC2120
pup() { # upgrade
plock-wait
pupdate
}
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
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
rm $x
fi
}
+ # shellcheck disable=SC2120
pup() { # upgrade
local s; [[ $EUID != 0 ]] && s=sudo
# file_time + 24 hours > current_time