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_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 $?; }
|
||||
[ ! -f "$config_file" ] && echo "WARN: no config file '$config_file'" >&2
|
||||
|
||||
[ -f "$config_file" ] && . "$config_file"
|
||||
|
||||
[ -n "$ZPKG_SSH_ADDRESS" ] && SSH_ADDRESS=$ZPKG_SSH_ADDRESS
|
||||
[ -n "$ZPKG_HTTP_ADDRESS" ] && HTTP_ADDRESS=$ZPKG_HTTP_ADDRESS
|
||||
[ -n "$ZPKG_COMPRESSION" ] && COMPRESSION=$ZPKG_COMPRESSION
|
||||
[ -n "$ZPKG_ALLOW_ROOT" ] && ALLOW_ROOT=$ZPKG_ALLOW_ROOT
|
||||
[ -n "$ZPKG_UPDATE_REMOVE" ] && UPDATE_REMOVE=$ZPKG_UPDATE_REMOVE
|
||||
SSH_ADDRESS=${ZPKG_SSH_ADDRESS-$SSH_ADDRESS}
|
||||
HTTP_ADDRESS=${ZPKG_HTTP_ADDRESS-$HTTP_ADDRESS}
|
||||
COMPRESSION=${ZPKG_COMPRESSION-$COMPRESSION}
|
||||
ALLOW_ROOT=${ZPKG_ALLOW_ROOT-$ALLOW_ROOT}
|
||||
UPDATE_REMOVE=${ZPKG_UPDATE_REMOVE-$UPDATE_REMOVE}
|
||||
ROOT_PATH=${ZPKG_ROOT_PATH-$ROOT_PATH}
|
||||
NOSUDO=${ZPKG_NOSUDO-$NOSUDO}
|
||||
|
||||
# resolve relative pkg_path
|
||||
if [ -n "$ZPKG_PKG_PATH" ]
|
||||
then PKG_PATH="$(resolve_path "$ZPKG_PKG_PATH" "$(pwd)")"
|
||||
else PKG_PATH="$(resolve_path "$PKG_PATH" "$config_path")"
|
||||
if [ -n "$ZPKG_PKG_PATH" ] ; then
|
||||
PKG_PATH="$(resolve_path "$ZPKG_PKG_PATH" "$(pwd)")"
|
||||
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
|
||||
|
||||
root_check && [ -z "$opt_f" ] && [ "$ALLOW_ROOT" != "true" ] && echo "Cannot run as root" >&2 && exit 10
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
_OUTPUT=/dev/stdin
|
||||
[ "$_ZPKG_SELF_UPGRADE" = "y" ] && _OUTPUT=/dev/null
|
||||
|
||||
config_path=/etc/zpkg
|
||||
config_path=$ZPKG_ROOT_PATH/etc/zpkg
|
||||
fname="$(basename "$0")"
|
||||
ALLOW_ROOT=false
|
||||
UPDATE_REMOVE=true
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ install_package()
|
|||
(
|
||||
umask a+rx
|
||||
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 $?
|
||||
copy_files HOME "$HOME" 2>/dev/null
|
||||
add_package_entry "$1" $2
|
||||
|
|
|
|||
|
|
@ -1,7 +1,11 @@
|
|||
#!/bin/sh
|
||||
|
||||
[ "$DEBUG" = true ] && set -x
|
||||
|
||||
# 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
|
||||
%include *.sh
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ remove_package()
|
|||
echo "Removing $1"
|
||||
|
||||
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"
|
||||
|
||||
$2 rm "$archive" 2>/dev/null
|
||||
|
|
|
|||
|
|
@ -25,10 +25,10 @@ upgrade_package()
|
|||
unpack "$1.tar.$extension" || return $?
|
||||
|
||||
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"
|
||||
|
||||
copy_files ROOT / $2 2>/dev/null
|
||||
copy_files ROOT "$ROOT_PATH/" $2 2>/dev/null
|
||||
copy_files HOME "$HOME" 2>/dev/null
|
||||
$2 cp "$1.tar.$extension" "$PKG_PATH"
|
||||
$2 chmod a+r "$PKG_PATH/$1.tar.$extension"
|
||||
|
|
@ -47,5 +47,5 @@ do_self_update()
|
|||
_tmpzpkg="$TMPDIR/zpkg_bin_$(random_string 5)"
|
||||
# copy current file
|
||||
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
|
||||
view_package_file() {
|
||||
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
|
||||
|
|
|
|||
Loading…
Reference in a new issue