add configurable root dir
This commit is contained in:
parent
4951d01950
commit
995bf183bf
7 changed files with 30 additions and 23 deletions
|
|
@ -14,28 +14,31 @@ virtual_config_path()
|
||||||
config_path="$(resolve_path "$config_path" "$(pwd)")"
|
config_path="$(resolve_path "$config_path" "$(pwd)")"
|
||||||
config_file="$config_path/zpkg.conf"
|
config_file="$config_path/zpkg.conf"
|
||||||
|
|
||||||
# setup sudo prefix
|
|
||||||
unset sudo
|
|
||||||
if ! root_check ; then
|
|
||||||
which sudo >/dev/null 2>&1 || { echo "sudo not installed" && exit 11; }
|
|
||||||
sudo=sudo
|
|
||||||
fi
|
|
||||||
|
|
||||||
[ ! -d "$config_path" ] && { $sudo mkdir -p "$config_path" 2>/dev/null || exit $?; }
|
[ ! -d "$config_path" ] && { $sudo mkdir -p "$config_path" 2>/dev/null || exit $?; }
|
||||||
[ ! -f "$config_file" ] && echo "WARN: no config file '$config_file'" >&2
|
[ ! -f "$config_file" ] && echo "WARN: no config file '$config_file'" >&2
|
||||||
|
|
||||||
[ -f "$config_file" ] && . "$config_file"
|
[ -f "$config_file" ] && . "$config_file"
|
||||||
|
|
||||||
[ -n "$ZPKG_SSH_ADDRESS" ] && SSH_ADDRESS=$ZPKG_SSH_ADDRESS
|
SSH_ADDRESS=${ZPKG_SSH_ADDRESS-$SSH_ADDRESS}
|
||||||
[ -n "$ZPKG_HTTP_ADDRESS" ] && HTTP_ADDRESS=$ZPKG_HTTP_ADDRESS
|
HTTP_ADDRESS=${ZPKG_HTTP_ADDRESS-$HTTP_ADDRESS}
|
||||||
[ -n "$ZPKG_COMPRESSION" ] && COMPRESSION=$ZPKG_COMPRESSION
|
COMPRESSION=${ZPKG_COMPRESSION-$COMPRESSION}
|
||||||
[ -n "$ZPKG_ALLOW_ROOT" ] && ALLOW_ROOT=$ZPKG_ALLOW_ROOT
|
ALLOW_ROOT=${ZPKG_ALLOW_ROOT-$ALLOW_ROOT}
|
||||||
[ -n "$ZPKG_UPDATE_REMOVE" ] && UPDATE_REMOVE=$ZPKG_UPDATE_REMOVE
|
UPDATE_REMOVE=${ZPKG_UPDATE_REMOVE-$UPDATE_REMOVE}
|
||||||
|
ROOT_PATH=${ZPKG_ROOT_PATH-$ROOT_PATH}
|
||||||
|
NOSUDO=${ZPKG_NOSUDO-$NOSUDO}
|
||||||
|
|
||||||
# resolve relative pkg_path
|
# resolve relative pkg_path
|
||||||
if [ -n "$ZPKG_PKG_PATH" ]
|
if [ -n "$ZPKG_PKG_PATH" ] ; then
|
||||||
then PKG_PATH="$(resolve_path "$ZPKG_PKG_PATH" "$(pwd)")"
|
PKG_PATH="$(resolve_path "$ZPKG_PKG_PATH" "$(pwd)")"
|
||||||
else PKG_PATH="$(resolve_path "$PKG_PATH" "$config_path")"
|
else
|
||||||
|
PKG_PATH="$(resolve_path "$PKG_PATH" "$config_path")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# setup sudo prefix
|
||||||
|
unset sudo
|
||||||
|
if ! root_check && [ -z "$NOSUDO" ] ; then
|
||||||
|
which sudo >/dev/null 2>&1 || { echo "sudo not installed" && exit 11; }
|
||||||
|
sudo=sudo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
root_check && [ -z "$opt_f" ] && [ "$ALLOW_ROOT" != "true" ] && echo "Cannot run as root" >&2 && exit 10
|
root_check && [ -z "$opt_f" ] && [ "$ALLOW_ROOT" != "true" ] && echo "Cannot run as root" >&2 && exit 10
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
_OUTPUT=/dev/stdin
|
_OUTPUT=/dev/stdin
|
||||||
[ "$_ZPKG_SELF_UPGRADE" = "y" ] && _OUTPUT=/dev/null
|
[ "$_ZPKG_SELF_UPGRADE" = "y" ] && _OUTPUT=/dev/null
|
||||||
|
|
||||||
config_path=/etc/zpkg
|
config_path=$ZPKG_ROOT_PATH/etc/zpkg
|
||||||
fname="$(basename "$0")"
|
fname="$(basename "$0")"
|
||||||
ALLOW_ROOT=false
|
ALLOW_ROOT=false
|
||||||
UPDATE_REMOVE=true
|
UPDATE_REMOVE=true
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ install_package()
|
||||||
(
|
(
|
||||||
umask a+rx
|
umask a+rx
|
||||||
unpack "$1.tar.$extension" $2 || return $?
|
unpack "$1.tar.$extension" $2 || return $?
|
||||||
copy_files ROOT / $2 o+rx 2>/dev/null || return $?
|
copy_files ROOT "$ROOT_PATH/" $2 2>/dev/null || return $?
|
||||||
) || return $?
|
) || return $?
|
||||||
copy_files HOME "$HOME" 2>/dev/null
|
copy_files HOME "$HOME" 2>/dev/null
|
||||||
add_package_entry "$1" $2
|
add_package_entry "$1" $2
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,11 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
[ "$DEBUG" = true ] && set -x
|
||||||
|
|
||||||
# ordered requirements
|
# ordered requirements
|
||||||
%include util.sh env.sh print.sh options.sh config.sh
|
%include util.sh env.sh print.sh
|
||||||
|
%include options.sh
|
||||||
|
%include config.sh
|
||||||
|
|
||||||
# everything else
|
# everything else
|
||||||
%include *.sh
|
%include *.sh
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ remove_package()
|
||||||
echo "Removing $1"
|
echo "Removing $1"
|
||||||
|
|
||||||
list=$(cat "$archive" | $pcompress -dc 2>/dev/null | tar -tf - 2>/dev/null)
|
list=$(cat "$archive" | $pcompress -dc 2>/dev/null | tar -tf - 2>/dev/null)
|
||||||
echo "$list" | grep "^ROOT/" | sed 's|^ROOT/||g' | tac | delete_files / $2
|
echo "$list" | grep "^ROOT/" | sed 's|^ROOT/||g' | tac | delete_files "$ROOT_PATH/" $2
|
||||||
echo "$list" | grep "^HOME/" | sed 's|^HOME/||g' | tac | delete_files "$HOME"
|
echo "$list" | grep "^HOME/" | sed 's|^HOME/||g' | tac | delete_files "$HOME"
|
||||||
|
|
||||||
$2 rm "$archive" 2>/dev/null
|
$2 rm "$archive" 2>/dev/null
|
||||||
|
|
|
||||||
|
|
@ -25,10 +25,10 @@ upgrade_package()
|
||||||
unpack "$1.tar.$extension" || return $?
|
unpack "$1.tar.$extension" || return $?
|
||||||
|
|
||||||
oldlist=$(cat "$PKG_PATH/$1.tar.$extension" | $pcompress -dc 2>/dev/null | tar -tf - 2>/dev/null | sort)
|
oldlist=$(cat "$PKG_PATH/$1.tar.$extension" | $pcompress -dc 2>/dev/null | tar -tf - 2>/dev/null | sort)
|
||||||
echo "$oldlist" | grep "^ROOT/" | to_delete - ROOT | sed 's|^ROOT/||g' | tac | delete_files / $2
|
echo "$oldlist" | grep "^ROOT/" | to_delete - ROOT | sed 's|^ROOT/||g' | tac | delete_files "$ROOT_PATH/" $2
|
||||||
echo "$oldlist" | grep "^HOME/" | to_delete - HOME | sed 's|^HOME/||g' | tac | delete_files "$HOME"
|
echo "$oldlist" | grep "^HOME/" | to_delete - HOME | sed 's|^HOME/||g' | tac | delete_files "$HOME"
|
||||||
|
|
||||||
copy_files ROOT / $2 2>/dev/null
|
copy_files ROOT "$ROOT_PATH/" $2 2>/dev/null
|
||||||
copy_files HOME "$HOME" 2>/dev/null
|
copy_files HOME "$HOME" 2>/dev/null
|
||||||
$2 cp "$1.tar.$extension" "$PKG_PATH"
|
$2 cp "$1.tar.$extension" "$PKG_PATH"
|
||||||
$2 chmod a+r "$PKG_PATH/$1.tar.$extension"
|
$2 chmod a+r "$PKG_PATH/$1.tar.$extension"
|
||||||
|
|
@ -47,5 +47,5 @@ do_self_update()
|
||||||
_tmpzpkg="$TMPDIR/zpkg_bin_$(random_string 5)"
|
_tmpzpkg="$TMPDIR/zpkg_bin_$(random_string 5)"
|
||||||
# copy current file
|
# copy current file
|
||||||
cp "$0" "$_tmpzpkg" || return $?
|
cp "$0" "$_tmpzpkg" || return $?
|
||||||
exec sh -c '_ZPKG_SELF_UPGRADE=y "$1" -R install zpkg ; rm -f "$1"' sh "$_tmpzpkg"
|
exec sh -c '_ZPKG_SELF_UPGRADE=y "$1" -c "$2" -R install zpkg ; rm -f "$1"' sh "$_tmpzpkg" "$config_path"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,7 @@ is_installed()
|
||||||
# $1 = file
|
# $1 = file
|
||||||
view_package_file() {
|
view_package_file() {
|
||||||
tree=$(cat "$1" | $pcompress -dc 2>/dev/null | tar -tf - 2>/dev/null) || exit $?
|
tree=$(cat "$1" | $pcompress -dc 2>/dev/null | tar -tf - 2>/dev/null) || exit $?
|
||||||
echo "$tree" | grep -E '^ROOT/|^HOME/' | sed "/\/$/d ; s|^ROOT/|/|g ; s|^HOME/|$HOME/|g" 2>/dev/null
|
echo "$tree" | grep -E '^ROOT/|^HOME/' | sed "/\/$/d ; s|^ROOT/|$ROOT_PATH/|g ; s|^HOME/|$HOME/|g" 2>/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
# $1 = package name
|
# $1 = package name
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue