feat: check /etc/* confliction when install
This commit is contained in:
parent
a74250ead3
commit
a8422c9774
11
leaf
11
leaf
@ -147,7 +147,8 @@ leaf_invoke_hooks() {
|
|||||||
leaf_merge_package() {
|
leaf_merge_package() {
|
||||||
pushd $1 > /dev/null 2>&1
|
pushd $1 > /dev/null 2>&1
|
||||||
local _trace_dir="${TRACE_DIR}/${PKG_PREFIX}/${PKG_NAME}"
|
local _trace_dir="${TRACE_DIR}/${PKG_PREFIX}/${PKG_NAME}"
|
||||||
local _item _mode _owner _group
|
local _item _item_conflict _mode _owner _group
|
||||||
|
local _time="$(date +%Y%m%d%H%M%S)"
|
||||||
cat "${_trace_dir}"/DIRS | while read -r _item; do
|
cat "${_trace_dir}"/DIRS | while read -r _item; do
|
||||||
_mode=$(stat -c %a ."${_item}")
|
_mode=$(stat -c %a ."${_item}")
|
||||||
_owner=$(stat -c %u ."${_item}")
|
_owner=$(stat -c %u ."${_item}")
|
||||||
@ -158,7 +159,13 @@ leaf_merge_package() {
|
|||||||
_mode=$(stat -c %a ."${_item}")
|
_mode=$(stat -c %a ."${_item}")
|
||||||
_owner=$(stat -c %u ."${_item}")
|
_owner=$(stat -c %u ."${_item}")
|
||||||
_group=$(stat -c %g ."${_item}")
|
_group=$(stat -c %g ."${_item}")
|
||||||
install -D -m ${_mode} -o ${_owner} -g ${_group} ."${_item}" "${_item}"
|
if [[ "${_item}" == /etc/* && -e "{_item}" ]]; then
|
||||||
|
_item_conflict="$(dirname "${_item}")/._$(basename "${_item}").conflict_${PKG_NAME}_${_time}"
|
||||||
|
install -D -m ${_mode} -o ${_owner}-g ${_group} ."${_item}" "${_item_conflict}"
|
||||||
|
leaf_record_message "Config file confliction on ${_item}, the package provided version is installed as ${_item_conflict}."
|
||||||
|
else
|
||||||
|
install -D -m ${_mode} -o ${_owner} -g ${_group} ."${_item}" "${_item}"
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
cat "${_trace_dir}"/LINKS | while read -r _item; do
|
cat "${_trace_dir}"/LINKS | while read -r _item; do
|
||||||
cp -dp ."${_item}" "${_item}"
|
cp -dp ."${_item}" "${_item}"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user