forked from pool/systemd-presets-common-SUSE
Accepting request 581531 from home:msmeissn:branches:Base:System
new package, forked off the branding OBS-URL: https://build.opensuse.org/request/show/581531 OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd-presets-common-SUSE?expand=0&rev=1
This commit is contained in:
120
branding-preset-states
Normal file
120
branding-preset-states
Normal file
@@ -0,0 +1,120 @@
|
||||
#! /bin/bash
|
||||
#
|
||||
# Written by sbrabec@suse.com
|
||||
#
|
||||
declare -a PRESET_FILES
|
||||
declare -A PRESETS
|
||||
declare -A PRESETS_OLD
|
||||
declare -A PRESETS_OLD_WILDCARD
|
||||
declare -A PRESETS_WILDCARD
|
||||
|
||||
save_preset_states () {
|
||||
PRESET_FILES=(*.preset)
|
||||
|
||||
for ((i=${#PRESET_FILES[@]}-1 ; i>= 0 ; i-- )) ; do
|
||||
FILE=${PRESET_FILES[i]}
|
||||
exec 3<"$FILE"
|
||||
while read -u3 ENABLE SERVICE PAD ; do
|
||||
if test -z "$SERVICE" ; then
|
||||
continue;
|
||||
fi
|
||||
case "$ENABLE" in
|
||||
enable|disable)
|
||||
PRESETS[$SERVICE]=$ENABLE;;
|
||||
esac
|
||||
done
|
||||
exec 3<&-
|
||||
done
|
||||
exec 3>systemd_preset-old.rpm-tmp
|
||||
for PRESET in "${!PRESETS[@]}" ; do
|
||||
echo >&3 "${PRESETS[$PRESET]} $PRESET"
|
||||
done
|
||||
exec 3>&-
|
||||
}
|
||||
|
||||
apply_preset_state_changes () {
|
||||
if ! test -f systemd_preset-old.rpm-tmp ; then
|
||||
return
|
||||
fi
|
||||
exec 3<systemd_preset-old.rpm-tmp
|
||||
while read -u3 ENABLE SERVICE PAD ; do
|
||||
if test -z "$SERVICE" ; then
|
||||
continue
|
||||
fi
|
||||
case "$ENABLE" in
|
||||
enable|disable)
|
||||
case $SERVICE in
|
||||
*"*"*|*"?"*) PRESETS_OLD_WILDCARD[$SERVICE]=$ENABLE;;
|
||||
*) PRESETS_OLD[$SERVICE]=$ENABLE;;
|
||||
esac
|
||||
esac
|
||||
done
|
||||
exec 3<&-
|
||||
PRESET_FILES=(*.preset)
|
||||
for ((i=${#PRESET_FILES[@]}-1 ; i>= 0 ; i-- )) ; do
|
||||
FILE=${PRESET_FILES[i]}
|
||||
exec 3<"$FILE"
|
||||
while read -u3 ENABLE SERVICE PAD ; do
|
||||
if test -z "$SERVICE" ; then
|
||||
continue
|
||||
fi
|
||||
case "$ENABLE" in
|
||||
enable|disable)
|
||||
case $SERVICE in
|
||||
*"*"*|*"?"*) PRESETS_WILDCARD[$SERVICE]=$ENABLE;;
|
||||
*) PRESETS[$SERVICE]=$ENABLE;;
|
||||
esac
|
||||
esac
|
||||
done
|
||||
exec 3<&-
|
||||
done
|
||||
if test -x /usr/bin/systemctl ; then
|
||||
/usr/bin/systemctl --type=service,socket list-unit-files
|
||||
fi >systemd_preset-states.rpm-tmp
|
||||
exec 3<systemd_preset-states.rpm-tmp
|
||||
read -u3 PAD
|
||||
while read -u3 SERVICE ENABLE PAD ; do
|
||||
if test -z "$SERVICE" ; then
|
||||
break
|
||||
fi
|
||||
# FIXME: This is not strictly correct as associative
|
||||
# arrays are not ordered.
|
||||
ENABLE_OLD=enable
|
||||
for PRESET in "${!PRESETS_OLD_WILDCARD[@]}" ; do
|
||||
case "$SERVICE" in
|
||||
$PRESET) ENABLE_OLD=${PRESETS_OLD_WILDCARD[$PRESET]};;
|
||||
esac
|
||||
done
|
||||
if test -n "${PRESETS_OLD[$SERVICE]}" ; then
|
||||
ENABLE_OLD="${PRESETS_OLD[$SERVICE]}"
|
||||
fi
|
||||
ENABLE_NEW=enable
|
||||
for PRESET in "${!PRESETS_WILDCARD[@]}" ; do
|
||||
case "$SERVICE" in
|
||||
$PRESET) ENABLE_NEW=${PRESETS_WILDCARD[$PRESET]};;
|
||||
esac
|
||||
done
|
||||
if test -n "${PRESETS[$SERVICE]}" ; then
|
||||
ENABLE_NEW="${PRESETS[$SERVICE]}"
|
||||
fi
|
||||
if test "$ENABLE_OLD" != "$ENABLE_NEW" ; then
|
||||
echo "Resetting $SERVICE to the new default: $ENABLE_NEW"
|
||||
/usr/bin/systemctl preset "$SERVICE" || :
|
||||
fi
|
||||
done
|
||||
exec 3<&-
|
||||
rm -f systemd_preset-{old,states}.rpm-tmp
|
||||
}
|
||||
|
||||
|
||||
cd /usr/lib/systemd/system-preset
|
||||
|
||||
case $1 in
|
||||
apply-changes)
|
||||
apply_preset_state_changes ;;
|
||||
save)
|
||||
save_preset_states ;;
|
||||
*)
|
||||
echo >&2 "Unkown command '$1'"
|
||||
exit 1
|
||||
esac
|
Reference in New Issue
Block a user