update: safe leaf_update_package_datebase
This commit is contained in:
17
leaf
17
leaf
@@ -548,18 +548,25 @@ leaf_conffile_is_unmodified() {
|
||||
}
|
||||
|
||||
leaf_update_package_database() {
|
||||
local _item="$(echo "$2" | awk 'BEGIN{FS="/";OFS="\\/"}{print $1,$2}')"
|
||||
case $1 in
|
||||
local action=$1 atom=$2 db="${INSTALLED_PACKAGES}"
|
||||
local tmp="${db}.tmp.$$"
|
||||
|
||||
case "$action" in
|
||||
add)
|
||||
sed -i "/${_item}/d" "${INSTALLED_PACKAGES}"
|
||||
echo "$2" >> ${INSTALLED_PACKAGES}
|
||||
{ [ -f "$db" ] && grep -Fvx -- "$atom" "$db" || :; printf '%s\n' "$atom"; } >"$tmp" &&
|
||||
mv -f -- "$tmp" "$db"
|
||||
;;
|
||||
delete)
|
||||
sed -i "/${_item}/d" "${INSTALLED_PACKAGES}"
|
||||
grep -Fvx -- "$atom" "$db" >"$tmp" &&
|
||||
mv -f -- "$tmp" "$db"
|
||||
;;
|
||||
*)
|
||||
leaf_error "unknown operation leaf_update_package_database ${action}."
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
leaf_update_environment() {
|
||||
ldconfig
|
||||
[ ! -r /etc/profile ] || source /etc/profile
|
||||
|
||||
Reference in New Issue
Block a user