pacwrap v0.9.12
pacwrap-sync: -g and -p options to manually invoke container configuration pacwrap-sync: Setting the environment variable PACWRAP_PASSTHROUGH will passthrough pacwrap-sync parameters to 'sudo pacman' at the end of transaction. pacwrap-sync: Renamed --explicit to --explicit-foreign to diambiguate and differentiate from pacwrap --explicit pacwrap: --explicit to passthrough -S, -Q, and -R to pacwrap-exec pacwrap-exec: -p/--pacman option to execute pacman in specificed instance with stated arguments pacwrap-common: PACWRAP_PACCACHE_ARGUMENTS variable. It can be set in the environment to override. pacwrap-man: Updated documentation to reflect current feature sets. pacwrap-man: Fixed distro_check() to not output garbage when being packaged. Among other miscallenous fixes and cleanup.
This commit is contained in:
parent
ee803d01e0
commit
7ee1462085
6 changed files with 132 additions and 64 deletions
|
@ -29,7 +29,7 @@ main () {
|
||||||
case $SWITCH in
|
case $SWITCH in
|
||||||
P) source $(type -P $PS_SCRIPT);;
|
P) source $(type -P $PS_SCRIPT);;
|
||||||
C) source $(type -P $CREATE_SCRIPT);;
|
C) source $(type -P $CREATE_SCRIPT);;
|
||||||
E) source $(type -P $EXEC_SCRIPT);;
|
E*) source $(type -P $EXEC_SCRIPT);;
|
||||||
S) source $(type -P $SYNC_SCRIPT);;
|
S) source $(type -P $SYNC_SCRIPT);;
|
||||||
U) source $(type -P $UTILS_SCRIPT);;
|
U) source $(type -P $UTILS_SCRIPT);;
|
||||||
h|V) manual_script;;
|
h|V) manual_script;;
|
||||||
|
@ -39,6 +39,7 @@ main () {
|
||||||
|
|
||||||
parse_args () {
|
parse_args () {
|
||||||
for var in "$@"; do case $var in
|
for var in "$@"; do case $var in
|
||||||
|
--explicit) SWITCH=Ep;;
|
||||||
--process|-P) SWITCH=P;;
|
--process|-P) SWITCH=P;;
|
||||||
--create|-C) SWITCH=C;;
|
--create|-C) SWITCH=C;;
|
||||||
--execute|-E) SWITCH=E;;
|
--execute|-E) SWITCH=E;;
|
||||||
|
@ -50,7 +51,7 @@ parse_args () {
|
||||||
-V|--version) SWITCH=V;;
|
-V|--version) SWITCH=V;;
|
||||||
-E*|-C*|-S*|-U*|-P*) SWITCH=$(echo $var | cut -c 2-2);;
|
-E*|-C*|-S*|-U*|-P*) SWITCH=$(echo $var | cut -c 2-2);;
|
||||||
*) ARGS+=("$var")
|
*) ARGS+=("$var")
|
||||||
esac; done
|
esac; [[ $SWITCH ]] && break; done
|
||||||
}
|
}
|
||||||
|
|
||||||
main $@
|
main $@
|
||||||
|
|
|
@ -39,7 +39,7 @@ ARROW="$CYAN$BOLD->$RESET"
|
||||||
ARROW_GREEN="$GREEN$BOLD->$RESET"
|
ARROW_GREEN="$GREEN$BOLD->$RESET"
|
||||||
ARROW_RED="$RED$BOLD->$RESET"
|
ARROW_RED="$RED$BOLD->$RESET"
|
||||||
|
|
||||||
VER="v0.9.11 ${BOLD}BETA$RESET"
|
VER="v0.9.12 ${BOLD}BETA$RESET"
|
||||||
|
|
||||||
MAN_SCRIPT="pacwrap-man"
|
MAN_SCRIPT="pacwrap-man"
|
||||||
EXEC_SCRIPT="pacwrap-exec"
|
EXEC_SCRIPT="pacwrap-exec"
|
||||||
|
@ -55,6 +55,7 @@ LOG_ERR_ERROR=3
|
||||||
[[ ! $PACWRAP_DATA_DIR ]] && PACWRAP_DATA_DIR="$HOME/.local/share/pacwrap"
|
[[ ! $PACWRAP_DATA_DIR ]] && PACWRAP_DATA_DIR="$HOME/.local/share/pacwrap"
|
||||||
[[ ! $PACWRAP_CACHE_DIR ]] && PACWRAP_CACHE_DIR="$HOME/.cache/pacwrap"
|
[[ ! $PACWRAP_CACHE_DIR ]] && PACWRAP_CACHE_DIR="$HOME/.cache/pacwrap"
|
||||||
[[ ! $PACWRAP_CONFIG_DIR ]] && PACWRAP_CONFIG_DIR="$HOME/.config/pacwrap"
|
[[ ! $PACWRAP_CONFIG_DIR ]] && PACWRAP_CONFIG_DIR="$HOME/.config/pacwrap"
|
||||||
|
[[ ! $PACWRAP_PACCACHE_ARGUMENTS ]] && PACWRAP_PACCACHE_ARGUMENTS="-rk 1"
|
||||||
|
|
||||||
VERBOSE="/dev/null"
|
VERBOSE="/dev/null"
|
||||||
|
|
||||||
|
|
|
@ -23,8 +23,9 @@ source pacwrap-common
|
||||||
main () {
|
main () {
|
||||||
parse_args "$@"
|
parse_args "$@"
|
||||||
init 1
|
init 1
|
||||||
|
|
||||||
case $SWITCH in
|
case $SWITCH in
|
||||||
|
*pS*|*pQ*|*pR*) execute_pacman;;
|
||||||
*rc*|*cr*) execute_fakeroot "${ARGS[@]}";;
|
*rc*|*cr*) execute_fakeroot "${ARGS[@]}";;
|
||||||
*rs*|*sr*) execute_fakeroot bash;;
|
*rs*|*sr*) execute_fakeroot bash;;
|
||||||
*s) execute_sandbox bash;;
|
*s) execute_sandbox bash;;
|
||||||
|
@ -51,18 +52,33 @@ parse_args () {
|
||||||
local sbdefined=
|
local sbdefined=
|
||||||
|
|
||||||
for var in "$@"; do case $var in
|
for var in "$@"; do case $var in
|
||||||
|
--explicit) continue;;
|
||||||
|
--pacman) SWITCH+="p";;
|
||||||
-V|--version) SWITCH="V";;
|
-V|--version) SWITCH="V";;
|
||||||
--root) SWITCH+="r";;
|
--root) SWITCH+="r";;
|
||||||
--shell) SWITCH+="s";;
|
--shell) SWITCH+="s";;
|
||||||
--dep) SWITCH+="d";;
|
--exec) SWITCH+="rc";;
|
||||||
--exec) SWITCH+="rc";;
|
|
||||||
-E*) SWITCH+=$(echo $var | cut -c 3-);;
|
-E*) SWITCH+=$(echo $var | cut -c 3-);;
|
||||||
|
-*|-Q*|-R*) if [[ $SWITCH == Ep* ]]; then SWITCH+=$(echo $var | cut -c 2-); else ARGS+=("$var"); fi;;
|
||||||
*) [[ $sbdefined ]] && ARGS+=("$var") && continue
|
*) [[ $sbdefined ]] && ARGS+=("$var") && continue
|
||||||
INSTANCE=$var
|
INSTANCE=$var
|
||||||
sbdefined=1;;
|
sbdefined=1;;
|
||||||
esac; done
|
esac; done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
execute_pacman() {
|
||||||
|
local runtime_args="pacman -$(echo $SWITCH | cut -c 3-)"
|
||||||
|
|
||||||
|
[[ ${#ARGS[@]} > 0 ]] && runtime_args+=" ${ARGS[@]}"
|
||||||
|
([[ $SWITCH == *S* ]] || [[ $SWITCH == *R* ]]) &&
|
||||||
|
[[ ! $(query_confirm_yN "Execute $RESET'$YELLOW$runtime_args$RESET'$BOLD on $INSTANCE") ]] && return
|
||||||
|
|
||||||
|
execute_fakeroot $runtime_args --noconfirm --log=/tmp/pacman.log 2>$VERBOSE
|
||||||
|
[[ $? == 0 ]] &&
|
||||||
|
([[ $SWITCH == *S ]] || [[ $SWITCH == *R* ]]) &&
|
||||||
|
$SYNC_SCRIPT -Sgp $INSTANCE
|
||||||
|
}
|
||||||
|
|
||||||
execute_sandbox () {
|
execute_sandbox () {
|
||||||
[[ ! -f $INSTANCE_SCRIPT ]] &&
|
[[ ! -f $INSTANCE_SCRIPT ]] &&
|
||||||
log_error $LOG_ERR_HELP "Script $INSTANCE_SCRIPT not found." 1
|
log_error $LOG_ERR_HELP "Script $INSTANCE_SCRIPT not found." 1
|
||||||
|
|
112
bin/pacwrap-man
112
bin/pacwrap-man
|
@ -34,8 +34,6 @@ main () {
|
||||||
*V*) version;;
|
*V*) version;;
|
||||||
*) log_invalid_arguments $1
|
*) log_invalid_arguments $1
|
||||||
esac
|
esac
|
||||||
|
|
||||||
distro_warn
|
|
||||||
}
|
}
|
||||||
|
|
||||||
parse_args () {
|
parse_args () {
|
||||||
|
@ -82,8 +80,8 @@ cat << _VERSION
|
||||||
$VER_DISPLAY $VER
|
$VER_DISPLAY $VER
|
||||||
Copyright (C) 2023 Xavier R.M.
|
Copyright (C) 2023 Xavier R.M.
|
||||||
|
|
||||||
Website: https://pacwrap.sapphirus.org/
|
Website: https://git.sapphirus.org/pacwrap
|
||||||
Github: https://git.sapphirus.org/
|
Github: https://github.com/sapphirusberyl/pacwrap
|
||||||
|
|
||||||
This program may be freely redistributed under
|
This program may be freely redistributed under
|
||||||
the terms of the GNU General Public License v3.
|
the terms of the GNU General Public License v3.
|
||||||
|
@ -110,44 +108,30 @@ _USAGE
|
||||||
man_execute() {
|
man_execute() {
|
||||||
cat <<_USAGE
|
cat <<_USAGE
|
||||||
${HEADER}EXECUTE OPTIONS$HEADER_RESET
|
${HEADER}EXECUTE OPTIONS$HEADER_RESET
|
||||||
${SUB_HEADER}--sandbox=TARGET$RESET
|
|
||||||
${SUB_TEXT}Specify the target sandbox to execute with bubblewrap.
|
|
||||||
|
|
||||||
${SUB_HEADER}-r, --root$RESET
|
${SUB_HEADER}-r, --root$RESET
|
||||||
${SUB_TEXT}Execute operation with fakeroot. Facilitates a command with faked root privileges.
|
${SUB_TEXT}Execute operation with fakeroot. Facilitates a command with faked root privileges.
|
||||||
|
|
||||||
${SUB_HEADER}-s, --shell$RESET
|
${SUB_HEADER}-s, --shell$RESET
|
||||||
${SUB_TEXT}Invoke a bash shell
|
${SUB_TEXT}Invoke a bash shell
|
||||||
|
|
||||||
|
${SUB_HEADER}-p, --pacman$RESET
|
||||||
|
${SUB_TEXT}Execute arguments with pacman in specified target.
|
||||||
|
|
||||||
|
${SUB_HEADER}-c, --exec$RESET
|
||||||
|
${SUB_TEXT}Execute application with arguments in specified target.
|
||||||
|
|
||||||
_USAGE
|
_USAGE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
man_sync() {
|
man_sync() {
|
||||||
cat << _USAGE
|
cat << _USAGE
|
||||||
${HEADER}SYNCHRONIZAtION OPTIONS$HEADER_RESET
|
${HEADER}SYNCHRONIZAtION OPTIONS$HEADER_RESET
|
||||||
_USAGE
|
|
||||||
|
|
||||||
case $HELP in
|
${SUB_HEADER}-y, --sync$RESET
|
||||||
Sy*)
|
${SUB_TEXT}Synchronize containers and their databases. Specify up to 4 times to force synchronization operations.
|
||||||
|
|
||||||
cat << _USAGE
|
|
||||||
${SUB_HEADER}-[yyyy], --sync$RESET
|
|
||||||
${SUB_TEXT}Synchronize containers and their databases. Additional suffixes will force synchronization operations.
|
|
||||||
_USAGE
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
cat << _USAGE
|
|
||||||
${SUB_HEADER}-[yyyy], --sync$RESET
|
|
||||||
${SUB_TEXT}Synchronize containers and their databases. Additional suffixes will force synchronization operations.
|
|
||||||
|
|
||||||
${SUB_HEADER}-u, --update$RESET
|
${SUB_HEADER}-u, --update$RESET
|
||||||
${SUB_TEXT}Executes chroot update routine.
|
${SUB_TEXT}Execute container update routine.
|
||||||
|
|
||||||
${SUB_HEADER}-y$RESET
|
|
||||||
${SUB_TEXT}Trigger a container synchronization event.
|
|
||||||
|
|
||||||
${SUB_HEADER}-n, --no-confirm$RESET
|
${SUB_HEADER}-n, --no-confirm$RESET
|
||||||
${SUB_TEXT}Override confirmation prompts and confirm all operations.
|
${SUB_TEXT}Override confirmation prompts and confirm all operations.
|
||||||
|
@ -156,7 +140,6 @@ ${SUB_HEADER}-g, --generate-config$RESET
|
||||||
${SUB_TEXT}Generate a new pacman.conf for specified targets.
|
${SUB_TEXT}Generate a new pacman.conf for specified targets.
|
||||||
|
|
||||||
_USAGE
|
_USAGE
|
||||||
esac
|
|
||||||
}
|
}
|
||||||
|
|
||||||
man_utils() {
|
man_utils() {
|
||||||
|
@ -165,29 +148,68 @@ ${HEADER}UTILITY OPTIONS$HEADER_RESET
|
||||||
${SUB_HEADER}-d, --delete$RESET
|
${SUB_HEADER}-d, --delete$RESET
|
||||||
${SUB_TEXT}Deletes the root and home directories of specified targets.
|
${SUB_TEXT}Deletes the root and home directories of specified targets.
|
||||||
|
|
||||||
|
${SUB_HEADER}-ls, --summarylist$RESET
|
||||||
|
${SUB_TEXT}Summarize information on container filesystems and their associated dependencies.
|
||||||
|
|
||||||
|
$TAB${SUB_HEADER}-d$RESET
|
||||||
|
$TAB${SUB_TEXT}Specify up to 4 times to display different sets of space consumption statistics.
|
||||||
|
|
||||||
|
${SUB_HEADER}-e, --edit$RESET
|
||||||
|
${SUB_TEXT}Edit configuration files associated with pacwrap and containers in specified $EDITOR.
|
||||||
|
|
||||||
|
$TAB${SUB_HEADER}-c$RESET
|
||||||
|
$TAB${SUB_TEXT}Edit container configuration for target.
|
||||||
|
|
||||||
|
$TAB${SUB_HEADER}-p$RESET
|
||||||
|
$TAB${SUB_TEXT}Edit global pacman.conf template.
|
||||||
|
|
||||||
|
$TAB${SUB_HEADER}-pt$RESET
|
||||||
|
$TAB${SUB_TEXT}Edit pacman.conf template for target.
|
||||||
|
|
||||||
|
${SUB_HEADER}-v, --view$RESET
|
||||||
|
${SUB_TEXT}View configuration files associated with pacwrap and containers in specified $EDITOR.
|
||||||
|
|
||||||
|
$TAB${SUB_HEADER}-ip$RESET
|
||||||
|
$TAB${SUB_TEXT}View sync pacman.conf for target.
|
||||||
|
|
||||||
|
$TAB${SUB_HEADER}-ips$RESET
|
||||||
|
$TAB${SUB_TEXT}View syncdb pacman.conf for target.
|
||||||
|
|
||||||
|
$TAB${SUB_HEADER}-l$RESET
|
||||||
|
$TAB${SUB_TEXT}View pacwrap.log
|
||||||
|
|
||||||
${SUB_HEADER}-r, --replicate$RESET
|
${SUB_HEADER}-r, --replicate$RESET
|
||||||
${SUB_TEXT}Replicate target container from configuration.
|
${SUB_TEXT}Replicate target container from configuration.
|
||||||
|
|
||||||
|
${SUB_HEADER}-t, --tar$RESET
|
||||||
|
${SUB_TEXT}Grab configuration files from specified tar archive.
|
||||||
|
|
||||||
${SUB_HEADER}-l, --link$RESET
|
${SUB_HEADER}-l, --link$RESET
|
||||||
${SUB_TEXT}Create a symbolic link of a target container's filesystem directory and initialize a home directory.
|
${SUB_TEXT}Create a symbolic link of a target container's filesystem directory and initialize a home directory.
|
||||||
|
|
||||||
${SUB_HEADER}-i, --initialize$RESET
|
${SUB_HEADER}-i, --initialize$RESET
|
||||||
${SUB_TEXT}Re-initialize configuration files. This can be used to synchronize pacwrap's mirrorlist with your system.
|
${SUB_TEXT}Initialize configuration files. This can be used to synchronize pacwrap's mirrorlist with your system.
|
||||||
|
|
||||||
${SUB_HEADER}-ls, --summarylist$RESET
|
_USAGE
|
||||||
${SUB_TEXT}SUmmarize information on container filesystems and their associated dependencies.
|
}
|
||||||
|
|
||||||
${SUB_HEADER}-e, --edit$RESET
|
man_copyright() {
|
||||||
${SUB_TEXT}Edit configuration files associated with pacwrap and containers.
|
cat << _USAGE
|
||||||
|
${HEADER}AUTHORS$HEADER_RESET
|
||||||
|
${SUB_TEXT}Copyright (c) 2023 - Xavier R.M.
|
||||||
|
|
||||||
|
${HEADER}LICENSE$HEADER_RESET
|
||||||
|
${SUB_TEXT}This program may be freely redistributed under
|
||||||
|
$TAB${TAB}the terms of the GNU General Public License v3.
|
||||||
|
|
||||||
_USAGE
|
_USAGE
|
||||||
}
|
}
|
||||||
|
|
||||||
man_version() {
|
man_version() {
|
||||||
cat << _USAGE
|
cat << _USAGE
|
||||||
${HEADER}VERSION$HEADER_RESET
|
${HEADER}VERSION$HEADER_RESET
|
||||||
${SUB_TEXT}pacwrap $VER$RESET
|
${SUB_TEXT}pacwrap $VER$RESET
|
||||||
|
|
||||||
_USAGE
|
_USAGE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -207,14 +229,16 @@ ${SUB_HEADER}-C, --create$RESET
|
||||||
${SUB_TEXT}Facilitates the creation of container filesystems.
|
${SUB_TEXT}Facilitates the creation of container filesystems.
|
||||||
|
|
||||||
${SUB_HEADER}-S, --sync$RESET
|
${SUB_HEADER}-S, --sync$RESET
|
||||||
${SUB_TEXT}Synhcronize package databases and update packages in target chroots.
|
${SUB_TEXT}Synchronize package databases and update packages in target containers.
|
||||||
$TAB${TAB}pacwrap-sync is invoked which facilitates an update and synchronization operation on specified targets.
|
|
||||||
|
${SUB_HEADER}--explicit$RESET
|
||||||
|
${SUB_TEXT}Passes through arguments to pacman in specified target.
|
||||||
|
|
||||||
${SUB_HEADER}-U, --utils$RESET
|
${SUB_HEADER}-U, --utils$RESET
|
||||||
${SUB_TEXT}Invoke miscellaneous utilities to manage containers.
|
${SUB_TEXT}Invoke miscellaneous utilities to manage containers.
|
||||||
|
|
||||||
${SUB_HEADER}-P, --process$RESET
|
${SUB_HEADER}-P, --process$RESET
|
||||||
${SUB_TEXT}Report information and manage running container processes
|
${SUB_TEXT}Report information and manage running container processes.
|
||||||
|
|
||||||
${SUB_HEADER}-E, --execute$RESET
|
${SUB_HEADER}-E, --execute$RESET
|
||||||
${SUB_TEXT}Executes application in target container using bubblewrap.
|
${SUB_TEXT}Executes application in target container using bubblewrap.
|
||||||
|
@ -239,6 +263,7 @@ print_manual() {
|
||||||
man_summary
|
man_summary
|
||||||
|
|
||||||
case $HELP in
|
case $HELP in
|
||||||
|
COPYRIGHT|copyright|cr) man_copyright;;
|
||||||
VERSION|version|V|v) man_version;;
|
VERSION|version|V|v) man_version;;
|
||||||
UTILS|utils|U|u) man_utils;;
|
UTILS|utils|U|u) man_utils;;
|
||||||
SYNC|sync|s*|S*) man_sync;;
|
SYNC|sync|s*|S*) man_sync;;
|
||||||
|
@ -248,10 +273,13 @@ print_manual() {
|
||||||
man_execute
|
man_execute
|
||||||
man_sync
|
man_sync
|
||||||
man_utils
|
man_utils
|
||||||
man_version;;
|
man_version
|
||||||
*)
|
man_copyright;;
|
||||||
[[ $HELP ]] && log_error "Operation '$HELP' not documented" 1
|
*)
|
||||||
|
[[ $HELP ]] && log_error "Operation '$HELP' not documented" 1
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
if [[ ! $HELP ]]; then distro_warn; fi
|
||||||
}
|
}
|
||||||
|
|
||||||
main $@
|
main $@
|
||||||
|
|
|
@ -40,14 +40,17 @@ main () {
|
||||||
init $PACWRAP_CREATE
|
init $PACWRAP_CREATE
|
||||||
|
|
||||||
[[ ! $SWITCH ]] ||
|
[[ ! $SWITCH ]] ||
|
||||||
([[ ! $SYNC_UPDATE ]] && [[ ! $SYNC_UPGRADE ]] && [[ ! $SYNC_CONFIG ]]) &&
|
([[ ! $SYNC_UPDATE ]] && [[ ! $SYNC_UPGRADE ]] &&
|
||||||
log_invalid_arguments $@
|
[[ ! $SYNC_CONFIG ]] && [[ ! $UPDATE_CONFIG ]]) &&
|
||||||
|
log_invalid_arguments $@
|
||||||
|
|
||||||
if [[ $SYNC_CONFIG ]]; then
|
if [[ $UPDATE_CONFIG ]] || [[ $SYNC_CONFIG ]]; then
|
||||||
local instance=${ARGS[0]}
|
local instance=${ARGS[0]}
|
||||||
[[ ! $instance ]] || [[ ! -d $INSTANCE_ROOT_DIR/$instance ]] && return
|
[[ ! $instance ]] || [[ ! -d $INSTANCE_ROOT_DIR/$instance ]] && return
|
||||||
log "$ARROW Configuring container..."
|
log "$ARROW Configuring container..."
|
||||||
sync_pacman_conf && return
|
[[ $SYNC_CONFIG ]] && sync_pacman_conf
|
||||||
|
[[ $UPDATE_CONFIG ]] && update_config
|
||||||
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $SYNC_UPGRADE ]] || ([[ $SYNC_UPDATE ]] && [[ ! $SYNC_FORCE ]]); then
|
if [[ $SYNC_UPGRADE ]] || ([[ $SYNC_UPDATE ]] && [[ ! $SYNC_FORCE ]]); then
|
||||||
|
@ -61,8 +64,7 @@ main () {
|
||||||
[[ ${#roots[@]} > 0 ]] && [[ ! $SYNC_FORCE ]] &&
|
[[ ${#roots[@]} > 0 ]] && [[ ! $SYNC_FORCE ]] &&
|
||||||
log "$BAR_GREEN Starting contingent container upgrade..."
|
log "$BAR_GREEN Starting contingent container upgrade..."
|
||||||
|
|
||||||
for b in ${baserootdeps[@]}; do
|
for b in ${baserootdeps[@]}; do [[ ${syncreq[$(return_base)]} ]] && syncreq=1 && break; done
|
||||||
[[ ${syncreq[$(return_base)]} ]] && syncreq=1 && break; done
|
|
||||||
|
|
||||||
if [[ $SYNC_OVERRIDE ]] || [[ $syncreq ]]; then
|
if [[ $SYNC_OVERRIDE ]] || [[ $syncreq ]]; then
|
||||||
update_links ${syncroots[@]}
|
update_links ${syncroots[@]}
|
||||||
|
@ -70,15 +72,22 @@ main () {
|
||||||
[[ $SYNC_FORCE ]] && return
|
[[ $SYNC_FORCE ]] && return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
[[ ${#roots[@]} -le 0 ]] && return
|
if [[ ${#roots[@]} -le 0 ]]; then
|
||||||
|
[[ $PACWRAP_PASSTHROUGH ]] && system_update
|
||||||
|
log "$ARROW_GREEN Transaction complete."
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ $SYNC_UPGRADE ]] || [[ $SYNC_UPDATE ]]; then
|
if [[ $SYNC_UPGRADE ]] || [[ $SYNC_UPDATE ]]; then
|
||||||
configure_containers ${roots[@]}
|
configure_containers ${roots[@]}
|
||||||
update ${roots[@]}
|
update ${roots[@]}
|
||||||
[[ -f /usr/bin/paccache ]] &&
|
[[ $(type -p paccache) ]] &&
|
||||||
paccache --cachedir $INSTANCE_PACMAN_CACHE -r -k 1 --min-mtime "14 days ago"
|
paccache --cachedir $INSTANCE_PACMAN_CACHE $PACWRAP_PACCACHE_ARGUMENTS
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
[[ $PACWRAP_PASSTHROUGH ]] && system_update
|
||||||
|
|
||||||
|
log "$ARROW_GREEN Transaction complete."
|
||||||
}
|
}
|
||||||
|
|
||||||
parse_args () {
|
parse_args () {
|
||||||
|
@ -87,7 +96,7 @@ parse_args () {
|
||||||
--generate-config|-g) SWITCH+="g";;
|
--generate-config|-g) SWITCH+="g";;
|
||||||
--update|-u) SWITCH+="u";;
|
--update|-u) SWITCH+="u";;
|
||||||
--noconfirm|-n) SWITCH+="n";;
|
--noconfirm|-n) SWITCH+="n";;
|
||||||
--explicit|-e) SWITCH+="e";;
|
--explicit-foreign|-ef) SWITCH+="ef";;
|
||||||
--sync|-y) SWITCH+="y";;
|
--sync|-y) SWITCH+="y";;
|
||||||
-S*) SWITCH+=$(echo $var | cut -c 3-);;
|
-S*) SWITCH+=$(echo $var | cut -c 3-);;
|
||||||
*) ARGS+=("$var");;
|
*) ARGS+=("$var");;
|
||||||
|
@ -97,13 +106,14 @@ parse_args () {
|
||||||
script_init () {
|
script_init () {
|
||||||
log_to_file "Running '$RUNTIME_ARGS'"
|
log_to_file "Running '$RUNTIME_ARGS'"
|
||||||
|
|
||||||
[[ $SWITCH == g ]] && SYNC_CONFIG=1
|
[[ $SWITCH == *g ]] && SYNC_CONFIG=1
|
||||||
|
[[ $SWITCH == *gp ]] && UPDATE_CONFIG=1
|
||||||
[[ $SWITCH == *y* ]] && SYNC_UPDATE=1
|
[[ $SWITCH == *y* ]] && SYNC_UPDATE=1
|
||||||
[[ $SWITCH == *u* ]] && SYNC_UPGRADE=1
|
[[ $SWITCH == *u* ]] && SYNC_UPGRADE=1
|
||||||
[[ $SWITCH == *yy* ]] && SYNC_FOREIGN=1
|
[[ $SWITCH == *yy* ]] && SYNC_FOREIGN=1
|
||||||
[[ $SWITCH == *yyy* ]] && SYNC_OVERRIDE=1
|
[[ $SWITCH == *yyy* ]] && SYNC_OVERRIDE=1
|
||||||
[[ $SWITCH == *yyyy* ]] && SYNC_FORCE=1
|
[[ $SWITCH == *yyyy* ]] && SYNC_FORCE=1
|
||||||
[[ $SWITCH == *e* ]] && SYNC_EXPLICIT_FOREIGN=1
|
[[ $SWITCH == *ef* ]] && SYNC_EXPLICIT_FOREIGN=1
|
||||||
|
|
||||||
syncroots=(${roots[@]})
|
syncroots=(${roots[@]})
|
||||||
|
|
||||||
|
@ -283,8 +293,7 @@ update_config() {
|
||||||
[[ "$(echo ${package_list[@]})" != "$(echo ${old_local_pkgs[@]})" ]] &&
|
[[ "$(echo ${package_list[@]})" != "$(echo ${old_local_pkgs[@]})" ]] &&
|
||||||
generate_config ${package_list[@]}
|
generate_config ${package_list[@]}
|
||||||
|
|
||||||
((amt_done++))
|
advance_progress 1
|
||||||
progress_bar
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sync_pacman_conf () {
|
sync_pacman_conf () {
|
||||||
|
@ -438,6 +447,19 @@ update () {
|
||||||
log_to_file "Updated containers: $(echo $@)"
|
log_to_file "Updated containers: $(echo $@)"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
system_update() {
|
||||||
|
local pacman_args="S"
|
||||||
|
|
||||||
|
[[ $SYNC_UPDATE ]] && pacman_args+="y"
|
||||||
|
[[ $SYNC_FOREIGN ]] && pacman_args+="y"
|
||||||
|
[[ $SYNC_UPGRADE ]] && pacman_args+="u"
|
||||||
|
|
||||||
|
local pacman="sudo pacman -$pacman_args"
|
||||||
|
|
||||||
|
[[ ${#pacman_args} > 0 ]] &&
|
||||||
|
[[ $(query_confirm_Yn "Execute $RESET'$YELLOW$pacman$RESET'$BOLD on system") ]] &&
|
||||||
|
$pacman
|
||||||
|
}
|
||||||
|
|
||||||
configure_containers () {
|
configure_containers () {
|
||||||
local amt=$((${#@}*3))
|
local amt=$((${#@}*3))
|
||||||
|
|
|
@ -38,7 +38,7 @@ main () {
|
||||||
[[ $SWITCH != Uls* ]] && log_to_file "Running '$RUNTIME_ARGS'"
|
[[ $SWITCH != Uls* ]] && log_to_file "Running '$RUNTIME_ARGS'"
|
||||||
|
|
||||||
case $SWITCH in
|
case $SWITCH in
|
||||||
Uc*) [[ -f /usr/bin/paccache ]] &&
|
Uc*) [[ $(type -p paccache) ]] &&
|
||||||
paccache --cachedir $INSTANCE_CACHE_DIR ${ARGS[@]};;
|
paccache --cachedir $INSTANCE_CACHE_DIR ${ARGS[@]};;
|
||||||
Ui*) initialize_data_directory;;
|
Ui*) initialize_data_directory;;
|
||||||
Ur*) replicate ${baserootdeps[@]} ${rootdeps[@]} ${roots[@]};;
|
Ur*) replicate ${baserootdeps[@]} ${rootdeps[@]} ${roots[@]};;
|
||||||
|
|
Loading…
Reference in a new issue