diff options
author | Ferdinand Bachmann | 2023-02-22 16:47:15 +0100 |
---|---|---|
committer | Ferdinand Bachmann | 2023-02-22 16:47:15 +0100 |
commit | 52789767686e5637457b397f60b2a26c2cb9cee5 (patch) | |
tree | da4823572246eb7cfdb19c33b5afd933567fbae4 | |
parent | e722dbd804ae2b86dca7b285442421d6bf20d289 (diff) | |
download | aur-52789767686e5637457b397f60b2a26c2cb9cee5.tar.gz |
linux-preserve-modules: allow executing list without root
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | PKGBUILD | 4 | ||||
-rwxr-xr-x | linux-preserve-modules | 26 |
3 files changed, 25 insertions, 9 deletions
@@ -1,6 +1,6 @@ pkgbase = linux-preserve-modules pkgdesc = a pacman hook that preserves linux kernel modules until reboot - pkgver = 1.3.0 + pkgver = 1.4.0 pkgrel = 1 url = https://aur.archlinux.org/packages/linux-preserve-modules arch = any @@ -10,6 +10,6 @@ pkgbase = linux-preserve-modules source = linux-preserve-modules sha256sums = 666c8f92f798a006b83740afae4dc832e4d38209eb866b2019cb32b8798bfdbf sha256sums = 206fb01f2740fc6359fea93f2280b43e18613a15b629f94581eb1f9f4e53e1d6 - sha256sums = a889adb3de2eb086348466ca198195aa6f00f0aee97510a157cde51c08e29123 + sha256sums = bbaacbb5171931770bb4d202519db4b73d66f6b35a51008592ca2454badb647d pkgname = linux-preserve-modules @@ -1,7 +1,7 @@ # Maintainer: Ferdinand B <theferdi265@gmail.com> pkgname=linux-preserve-modules -pkgver=1.3.0 +pkgver=1.4.0 pkgrel=1 pkgdesc="a pacman hook that preserves linux kernel modules until reboot" url="https://aur.archlinux.org/packages/linux-preserve-modules" @@ -13,7 +13,7 @@ source=(linux-preserve-modules.hook linux-preserve-modules) sha256sums=('666c8f92f798a006b83740afae4dc832e4d38209eb866b2019cb32b8798bfdbf' '206fb01f2740fc6359fea93f2280b43e18613a15b629f94581eb1f9f4e53e1d6' - 'a889adb3de2eb086348466ca198195aa6f00f0aee97510a157cde51c08e29123') + 'bbaacbb5171931770bb4d202519db4b73d66f6b35a51008592ca2454badb647d') package() { install -Dm644 "$srcdir/linux-preserve-modules.hook" "$pkgdir/usr/share/libalpm/hooks/10-linux-preserve-modules.hook" diff --git a/linux-preserve-modules b/linux-preserve-modules index 3727499fad64..7fd6c7f692f8 100755 --- a/linux-preserve-modules +++ b/linux-preserve-modules @@ -25,6 +25,13 @@ set-vars() { fi } +check-root() { + if [[ "$(id -u)" -ne 0 ]]; then + echo "error: this script needs to run as root" >&2 + usage + fi +} + preserve-modules-copy() { if [[ $# -gt 1 ]]; then echo "usage: linux-preserve-modules copy [release]" >&2 @@ -33,6 +40,9 @@ preserve-modules-copy() { set-vars "$1" fi + # copying needs root + check-root + # exit early if the target directory does not exist if [[ ! -f "$TARGET_DIR/modules.builtin" ]]; then echo "info: nothing to copy" >&2 @@ -69,6 +79,9 @@ preserve-modules-link() { set-vars "$1" fi + # linking needs root + check-root + # exit early if no kernel modules copied if [[ ! -f "$PRESERVE_DIR/modules.builtin" ]]; then echo "info: nothing to link" >&2 @@ -117,6 +130,9 @@ preserve-modules-unlink() { set-vars "$1" fi + # unlinking needs root + check-root + # exit early if kernel modules not already copied if [[ ! -f "$TARGET_DIR/.preserved" ]]; then echo "info: not linked" >&2 @@ -144,6 +160,9 @@ preserve-modules-unlink-all() { exit 1 fi + # unlinking needs root + check-root + # find kernels with .preserved marker file LINKED_KERNELS=( $(find /usr/lib/modules -maxdepth 2 -type f -name .preserved | cut -d/ -f5) ) echo "info: found ${#LINKED_KERNELS[@]} kernels with linked modules" >&2 @@ -162,6 +181,8 @@ preserve-modules-list() { exit 1 fi + # listing does not need root + # find kernels with .preserved marker file LINKED_KERNELS=( $(find /usr/lib/modules -maxdepth 2 -type f -name .preserved | cut -d/ -f5) ) echo "info: found ${#LINKED_KERNELS[@]} kernels with linked modules" >&2 @@ -178,11 +199,6 @@ usage() { } main() { - if [[ "$(id -u)" -ne 0 ]]; then - echo "error: this script needs to run as root" >&2 - usage - fi - set-vars "$(uname -r)" if [[ "$#" -eq 0 ]]; then |