diff options
author | Piotr Gorski <lucjan.lucjanov@gmail.com> | 2020-09-21 16:26:28 +0200 |
---|---|---|
committer | Piotr Gorski <lucjan.lucjanov@gmail.com> | 2020-09-21 16:26:28 +0200 |
commit | 13cb503ab9afb70a2ac5f1e4ce31d9f95ea5ecc8 (patch) | |
tree | 9348b146af52953b823fa1a6fe750bde43137cca /libalpm | |
parent | 6ca402a3663b03884343564e780483d005a56e2c (diff) | |
parent | 3340dbc2ed92a0d9e58193d2d4082a588c1d84ca (diff) | |
download | mkinitcpio-13cb503ab9afb70a2ac5f1e4ce31d9f95ea5ecc8.tar.gz mkinitcpio-13cb503ab9afb70a2ac5f1e4ce31d9f95ea5ecc8.tar.xz |
Merge remote-tracking branch 'upstream/master' into patch-1
Diffstat (limited to 'libalpm')
-rw-r--r-- | libalpm/scripts/mkinitcpio-remove | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/libalpm/scripts/mkinitcpio-remove b/libalpm/scripts/mkinitcpio-remove index 86838e4..17b4b31 100644 --- a/libalpm/scripts/mkinitcpio-remove +++ b/libalpm/scripts/mkinitcpio-remove @@ -2,6 +2,20 @@ package=0 +process_preset() { + if [[ -n "${pkgbase}" && -e $preset ]]; then + if ! cmp $preset > /dev/null 2>&1 <(sed "s|%PKGBASE%|${pkgbase}|g" /usr/share/mkinitcpio/hook.preset); then + if [[ ! -e $preset.pacsave ]]; then + # save the preset as pacsave + mv $preset $preset.pacsave && return 0 + fi + else + # remove the preset + rm $preset && return 0 + fi + fi +} + while read -r line; do if [[ $line != */vmlinuz ]]; then # triggers when it's a change to usr/lib/initcpio/* @@ -23,17 +37,25 @@ while read -r line; do # remove the installed kernel rm $kernel fi - if [[ -e $preset ]]; then - # remove the preset - rm $preset + + process_preset "${pkgbase}" $preset + + if [[ -e $initramfs ]]; then + # remove the main image + rm $initramfs fi - if [[ -e $initramfs && -e $fallback_initramfs ]]; then - # remove the images - rm $initramfs $fallback_initramfs + if [[ -e $fallback_initramfs ]]; then + # remove the fallback image + rm $fallback_initramfs fi done if (( package )) && compgen -G /etc/mkinitcpio.d/"*.preset" > /dev/null; then - # remove all presets - rm /etc/mkinitcpio.d/*.preset + shopt -s nullglob + for preset in /etc/mkinitcpio.d/*.preset; do + pkgbase=${preset##*/} + pkgbase=${pkgbase%.preset} + process_preset "${pkgbase}" $preset + done + shopt -u nullglob fi |