diff options
| author | emmett1 <emmett1.2miligrams@protonmail.com> | 2024-07-01 00:50:18 +0800 |
|---|---|---|
| committer | emmett1 <emmett1.2miligrams@protonmail.com> | 2024-07-01 00:50:18 +0800 |
| commit | 73e405670670b4ff676d0fd26c4b9f9fdf63644c (patch) | |
| tree | d5d0bccb551fdcb6e8be96afdf85b6b1d79a645d /apkg | |
| parent | 1a6cfc51c56a5f3447067573d764fe498af409ae (diff) | |
| download | autils-73e405670670b4ff676d0fd26c4b9f9fdf63644c.tar.gz autils-73e405670670b4ff676d0fd26c4b9f9fdf63644c.zip | |
added trigger function and needroot function
Diffstat (limited to 'apkg')
| -rwxr-xr-x | apkg | 125 |
1 files changed, 125 insertions, 0 deletions
@@ -458,12 +458,14 @@ pkg_outdate() { } pkg_remove() { + needroot for i in $@; do SPM_ROOT=$APKG_ROOT spm -r $i done } pkg_sysup() { + needroot msg "Checking for outdated packages..." od=$(pkg_outdate | awk '{print $1}') if [ ! "$od" ]; then @@ -499,6 +501,7 @@ pkg_search() { } pkg_depinstalll() { + needroot for p in $@; do if [ -s $SPM_PKGDB/$p ]; then msg "Package '$p' is installed" @@ -527,6 +530,118 @@ pkg_depinstalll() { $APKG -i $installthis || die } +_trigger_fccache() { + command -v fc-cache >/dev/null || return 0 + spm -l $1 | grep -q ^usr/share/fonts/$ && { + msg "Updating fontconfig cache..." + fc-cache -sf + } +} + +_trigger_gdkpixbufcache() { + command -v gdk-pixbuf-query-loaders >/dev/null || return 0 + spm -l $1 | grep -q ^usr/lib/gdk-pixbuf-2.0/2.10.0/loaders/$ && { + msg "Probing GDK-Pixbuf loader modules..." + gdk-pixbuf-query-loaders --update-cache + } +} + +_trigger_giomodules() { + command -v gio-querymodules >/dev/null || return 0 + spm -l $1 | grep -q ^usr/lib/gio/modules/$ && { + msg "Updating GIO module cache..." + gio-querymodules /usr/lib/gio/modules + } +} + +_trigger_glibschema() { + command -v glib-compile-schemas >/dev/null || return 0 + spm -l $1 | grep -q ^usr/share/glib-2.0/schemas/$ && { + msg "Compiling GSettings XML schema files..." + glib-compile-schemas /usr/share/glib-2.0/schemas + } +} + +_trigger_gtk2immodules() { + command -v gtk-query-immodules-2.0 >/dev/null || return 0 + spm -l $1 | grep -q ^usr/lib/gtk-2.0/2.10.0/immodules/$ && { + msg "Probing GTK2 input method modules..." + gtk-query-immodules-2.0 --update-cache + } +} + +_trigger_gtk3immodules() { + command -v gtk-query-immodules-3.0 >/dev/null || return 0 + spm -l $1 | grep -q ^usr/lib/gtk-3.0/3.0.0/immodules/$ && { + msg "Probing GTK3 input method modules..." + gtk-query-immodules-3.0 --update-cache + } +} + +_trigger_iconcache() { + command -v gtk-update-icon-cache >/dev/null || return 0 + spm -l $1 | grep -q ^usr/share/icons/$ && { + msg "Updating icon theme caches..." + for dir in /usr/share/icons/* ; do + if [ -e $dir/index.theme ]; then + gtk-update-icon-cache -q $dir 2>/dev/null + else + rm -f $dir/icon-theme.cache + rmdir --ignore-fail-on-non-empty $dir + fi + done + } +} + +_trigger_udevdb() { + command -v udevadm >/dev/null || return 0 + spm -l $1 | grep -q ^etc/udev/hwdb.d/$ && { + msg "Updating hardware database..." + echo udevadm hwdb --update + } +} + +_trigger_fontcache() { + command -v mkfontdir >/dev/null || return 0 + command -v mkfontscale >/dev/null || return 0 + spm -l $1 | grep -q ^usr/share/fonts/$ && { + msg "Updating X fontdir indices..." + for dir in $(find /usr/share/fonts -maxdepth 1 -type d \( ! -path /usr/share/fonts \)); do + rm -f $dir/fonts.scale $dir/fonts.dir $dir/.uuid + rmdir --ignore-fail-on-non-empty $dir + [ -d "$dir" ] || continue + mkfontdir $dir + mkfontscale $dir + done + } +} + +_trigger_desktopdb() { + command -v update-desktop-database >/dev/null || return 0 + spm -l $1 | grep -q ^usr/share/applications/$ && { + msg "Updating desktop file MIME type cache..." + update-desktop-database --quiet + } +} + +_trigger_mimedb() { + command -v update-mime-database >/dev/null || return 0 + spm -l $1 | grep -q ^usr/share/mime/$ && { + msg "Updating the MIME type database..." + update-mime-database /usr/share/mime + } +} + +pkg_trigger() { + needroot + [ "$@" ] || set -- $($APKG -a) + for t in mimedb desktopdb fontcache fccache udevdb iconcache gtk3immodules gtk2immodules glibschema giomodules gdkpixbufcache; do + for p in $@; do + _trigger_$t $p && break + done + done +} + pkg_allinstalled() { [ "$1" ] && grep="grep $1" || grep=cat ls -1 $SPM_PKGDB | $grep @@ -554,6 +669,13 @@ runscript() { fi } +needroot() { + [ $(id -u) = 0 ] || { + msg 'This operation need root access' + exit 1 + } +} + parsesubopt() { # loop opts until found '-*' shift; while [ "$1" ]; do @@ -582,6 +704,7 @@ parseopts() { -D) pkg_deplist $(parsesubopt $@); exit 0;; -r) pkg_remove $(parsesubopt $@); exit 0;; -p) pkg_path $(parsesubopt $@); exit 0;; + -t) pkg_trigger $(parsesubopt $@); exit 0;; -U) pkg_sysup; exit 0;; -d) pkg_depends $2; exit 0;; -s) pkg_search $2; exit 0;; @@ -613,6 +736,7 @@ options: -D <pkg(s)> list all dependencies -j <pkg> list all dependents -u <pkg(s)> upgrade package(s) + -t [pkg(s)] trigger system cache/db updates -U update system -f force rebuild -o <pkg(s)> download source @@ -710,6 +834,7 @@ main() { fi # run postinstall script after installed/upgraded runscript post + pkg_trigger $name } umask 022 |