Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
view bin/fpkg @ 91:fffee187f1f7
Docu: effective environment variables
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Fri, 06 Sep 2019 22:08:19 +0200 |
| parents | aefad9391470 |
| children | c95726f83f84 |
line wrap: on
line source
#!/bin/sh # -*- indent-tabs-mode: nil; -*- : 'A pkg frontend for common operations that also operates in all running jails. :Author: Franz Glasner :Copyright: (c) 2019 Franz Glasner. All rights reserved. :License: 3-Clause BSD License. See LICENSE for details. If you cannot find LICENSE see <https://opensource.org/licenses/BSD-3-Clause> :Id: @(#)@@PKGORIGIN@@ $HGid$ ' VERSION="@@VERSION@@" USAGE=' USAGE: fpkg [ OPTIONS] COMMAND [ COMMAND-OPTIONS ] OPTIONS: -V Print the program name and version number to stdout and exit -h Print this help message to stdout and exit COMMANDS: audit `pkg audit` on the local host and all running visible jails update `pkg update` on the local host and all running visible jails upgrade `pkg upgrade` on the local host and all running visible jails upgrade-check `pkg upgrade -n` on the local host and all running visible jails ENVIRONMENT: AUDIT_FLAGS Additional flags given to `pkg audit` (Default: -Fr) UPDATE_FLAGS Additional flags given to `pkg update` (Default: empty) UPGRADE_FLAGS Additional flags given to `pkg upgrade` and `pkg upgrade -n` (Default: empty) SIGN Marker for the begin of an output group (local host or jail) (Default: "===> ") All other environment variables that affect `pkg` are effective also. ' : ${AUDIT_FLAGS:=-Fr} : ${UPDATE_FLAGS:=} : ${UPGRADE_FLAGS:=} : ${SIGN:='===> '} command_audit() { : 'Do a local `pkg audit -Fr` and also for all running jails ' echo "${SIGN}LOCALHOST:" pkg audit ${AUDIT_FLAGS} for _j in $(jls -N | awk '{if(NR>1)print $1}' | sort); do echo "" echo "${SIGN}JAIL: ${_j}" pkg -j "${_j}" audit ${AUDIT_FLAGS} done } command_update() { : 'Do a local `pkg update` and also for all running jails ' echo "${SIGN}HOST:" pkg update ${UPDATE_FLAGS} for _j in $(jls -N | awk '{if(NR>1)print $1}' | sort); do echo "" echo "${SIGN}JAIL: ${_j}" pkg -j "${_j}" update ${UPDATE_FLAGS} done } command_upgrade() { : 'Do a local `pkg upgrade` and also for all running jails ' echo "${SIGN}HOST:" pkg upgrade ${UPGRADE_FLAGS} for _j in $(jls -N | awk '{if(NR>1)print $1}' | sort); do echo "" echo "${SIGN}JAIL: ${_j}" pkg -j "${_j}" upgrade ${UPGRADE_FLAGS} done } command_upgrade_check() { : 'Do a local `pkg upgrade -n` and also for all running jails ' echo "${SIGN}HOST:" pkg upgrade -n ${UPGRADE_FLAGS} for _j in $(jls -N | awk '{if(NR>1)print $1}' | sort); do echo "" echo "${SIGN}JAIL: ${_j}" pkg -j "${_j}" upgrade -n ${UPGRADE_FLAGS} done } # # Global option handling # while getopts "Vh" _opt ; do case ${_opt} in V) echo "fpkg v${VERSION} (rv:@@HGREVISION@@)" exit 0 ;; h) echo "${USAGE}" exit 0 ;; \?) exit 2; ;; *) echo "ERROR: option handling failed" >&2 exit 2 ;; esac done # # Reset the Shell's option handling system to prepare for handling # command-local options. # shift $((OPTIND-1)) OPTIND=1 command="$1" shift test -n "$command" || { echo "ERROR: no command given" >&2; exit 2; } case "${command}" in audit) command_audit "$@" ;; update) command_update "$@" ;; upgrade) command_upgrade "$@" ;; upgrade-check|upgrade_check) command_upgrade_check "$@" ;; *) echo "ERROR: unknown command \`${command}'" >&2 exit 2; ;; esac
