forked from kiss-community/kiss
kiss: clean up + do less in instalalation by using test -a/-o
This commit is contained in:
parent
5d00c43720
commit
506db9b469
53
kiss
53
kiss
@ -939,27 +939,29 @@ pkg_install_files() {
|
|||||||
[ST]*): "$((b+=1))" ;;
|
[ST]*): "$((b+=1))" ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
[ "$((${c%?} % 3))" = 0 ] && oct=$oct$o o=0
|
case $((${c%?} % 3)) in
|
||||||
|
0) oct=$oct$o o=0
|
||||||
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
# Copy files and create directories (preserving permissions).
|
# Copy files and create directories (preserving permissions).
|
||||||
case $line in
|
case $line in
|
||||||
/etc/?*[!/])
|
/etc/?*[!/])
|
||||||
[ -d "$KISS_ROOT/$line" ] || test "$1" "$KISS_ROOT/$line" ||
|
test -d "$KISS_ROOT/$line" -o "$1" "$KISS_ROOT/$line" ||
|
||||||
pkg_etc_file "$2" "${line#/}"
|
pkg_etc_file "$2" "${line#/}"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*/)
|
*/)
|
||||||
[ -d "$KISS_ROOT/$line" ] ||
|
test -d "$KISS_ROOT/$line" ||
|
||||||
mkdir -m "$oct" "$KISS_ROOT/$line"
|
mkdir -m "$oct" "$KISS_ROOT/$line"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
[ -d "$KISS_ROOT/$line" ] || test "$1" "$KISS_ROOT/$line" || {
|
test -d "$KISS_ROOT/$line" -o "$1" "$KISS_ROOT/$line" || {
|
||||||
cp -fP "$2/$line" "$KISS_ROOT/$line"
|
cp -fP "$2/$line" "$KISS_ROOT/$line"
|
||||||
|
|
||||||
# This prepends $b which represents sticky bit, setuid,
|
# This prepends $b which represents sticky bit,
|
||||||
# setfgid, etc.
|
# setuid, setfgid, etc.
|
||||||
[ -h "$KISS_ROOT/$line" ] ||
|
[ -h "$KISS_ROOT/$line" ] ||
|
||||||
chmod "$b$oct" "$KISS_ROOT/$line"
|
chmod "$b$oct" "$KISS_ROOT/$line"
|
||||||
}
|
}
|
||||||
@ -974,28 +976,30 @@ pkg_remove_files() {
|
|||||||
# installation and package removal. Combining the removals in these two
|
# installation and package removal. Combining the removals in these two
|
||||||
# functions allows us to stop duplicating code.
|
# functions allows us to stop duplicating code.
|
||||||
while read -r file; do
|
while read -r file; do
|
||||||
case $file in /etc/?*[!/])
|
case $file in
|
||||||
sum_sys=$(sh256 "$KISS_ROOT/$file")
|
/etc/?*[!/])
|
||||||
sum_old=$(grep -F "$sum_sys" "$tmp_dir/.etcsums")
|
sum_sys=$(sh256 "$KISS_ROOT/$file") ||:
|
||||||
|
sum_old=$(grep -F "$sum_sys" "$tmp_dir/.etcsums") ||:
|
||||||
|
|
||||||
[ "$sum_sys" = "$sum_old" ] || {
|
[ "$sum_sys" = "$sum_old" ] || {
|
||||||
printf 'Skipping %s (modified)\n' "$file"
|
printf 'Skipping %s (modified)\n' "$file"
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
esac 2>/dev/null ||:
|
;;
|
||||||
|
esac 2>/dev/null
|
||||||
|
|
||||||
file=$KISS_ROOT/$file
|
file=$KISS_ROOT/$file
|
||||||
|
|
||||||
# Remove files.
|
# Remove files.
|
||||||
if [ -f "$file" ] && [ ! -h "$file" ]; then
|
if test -f "$file" -a ! -h "$file"; then
|
||||||
rm -f "$file"
|
rm -f "$file"
|
||||||
|
|
||||||
# Remove file symlinks.
|
# Remove file symlinks.
|
||||||
elif [ -h "$file" ] && [ ! -d "$file" ]; then
|
elif test -h "$file" -a ! -d "$file"; then
|
||||||
rm -f "$file"
|
rm -f "$file"
|
||||||
|
|
||||||
# Remove directories if empty.
|
# Remove directories if empty.
|
||||||
elif [ -d "$file" ] && [ ! -h "$file" ]; then
|
elif test -d "$file" -a ! -h "$file"; then
|
||||||
rmdir "$file" 2>/dev/null ||:
|
rmdir "$file" 2>/dev/null ||:
|
||||||
fi
|
fi
|
||||||
done ||:
|
done ||:
|
||||||
@ -1032,8 +1036,7 @@ pkg_etc_file() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
cp -fPp "$1/$2" "$KISS_ROOT/${2}${new}"
|
cp -fP "$1/$2" "$KISS_ROOT/${2}${new}"
|
||||||
chown root:root "$KISS_ROOT/${2}${new}" 2>/dev/null
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pkg_remove() {
|
pkg_remove() {
|
||||||
@ -1335,13 +1338,13 @@ args() {
|
|||||||
[ -z "$1" ] || [ -w "$KISS_ROOT/" ] || [ "$uid" = 0 ] || {
|
[ -z "$1" ] || [ -w "$KISS_ROOT/" ] || [ "$uid" = 0 ] || {
|
||||||
as_root HOME="$HOME" \
|
as_root HOME="$HOME" \
|
||||||
XDG_CACHE_HOME="$XDG_CACHE_HOME" \
|
XDG_CACHE_HOME="$XDG_CACHE_HOME" \
|
||||||
KISS_PATH="$KISS_PATH" \
|
|
||||||
KISS_FORCE="$KISS_FORCE" \
|
|
||||||
KISS_ROOT="$KISS_ROOT" \
|
|
||||||
KISS_CHOICE="$KISS_CHOICE" \
|
KISS_CHOICE="$KISS_CHOICE" \
|
||||||
KISS_COLOR="$KISS_COLOR" \
|
KISS_COLOR="$KISS_COLOR" \
|
||||||
KISS_TMPDIR="$KISS_TMPDIR" \
|
KISS_FORCE="$KISS_FORCE" \
|
||||||
|
KISS_PATH="$KISS_PATH" \
|
||||||
KISS_PID="$KISS_PID" \
|
KISS_PID="$KISS_PID" \
|
||||||
|
KISS_ROOT="$KISS_ROOT" \
|
||||||
|
KISS_TMPDIR="$KISS_TMPDIR" \
|
||||||
"$0" "$action" "$@"
|
"$0" "$action" "$@"
|
||||||
|
|
||||||
return
|
return
|
||||||
@ -1365,8 +1368,8 @@ args() {
|
|||||||
|
|
||||||
# Go over each alternative and format the file
|
# Go over each alternative and format the file
|
||||||
# name for listing. (pkg_name>usr>bin>ls)
|
# name for listing. (pkg_name>usr>bin>ls)
|
||||||
for _pkg in "$sys_db/../choices"/*; do
|
for pkg in "$sys_db/../choices"/*; do
|
||||||
printf '%s\n' "${_pkg##*/}"
|
printf '%s\n' "${pkg##*/}"
|
||||||
done |
|
done |
|
||||||
|
|
||||||
sed 's|>| /|; s|>|/|g; /\*/d'
|
sed 's|>| /|; s|>|/|g; /\*/d'
|
||||||
|
Loading…
Reference in New Issue
Block a user