annotate bin/fpkg @ 109:0bd594fb56f8

Read the tools.conf configuration file where appropriate
author Franz Glasner <fzglas.hg@dom66.de>
date Tue, 08 Oct 2019 09:35:30 +0200
parents f8642efe05a1
children 0838fdca3a2b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
88
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
1 #!/bin/sh
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
2 # -*- indent-tabs-mode: nil; -*-
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
3 : 'A pkg frontend for common operations that also operates in all
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
4 running jails.
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
5
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
6 :Author: Franz Glasner
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
7 :Copyright: (c) 2019 Franz Glasner.
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
8 All rights reserved.
99
7a064049405f Use the "Full name" in the license section
Franz Glasner <fzglas.hg@dom66.de>
parents: 98
diff changeset
9 :License: BSD 3-Clause "New" or "Revised" License.
88
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
10 See LICENSE for details.
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
11 If you cannot find LICENSE see
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
12 <https://opensource.org/licenses/BSD-3-Clause>
93
c95726f83f84 Style: :Id: -> :ID:
Franz Glasner <fzglas.hg@dom66.de>
parents: 91
diff changeset
13 :ID: @(#)@@PKGORIGIN@@ $HGid$
88
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
14
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
15 '
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
16
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
17 VERSION="@@VERSION@@"
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
18
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
19 USAGE='
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
20 USAGE: fpkg [ OPTIONS] COMMAND [ COMMAND-OPTIONS ]
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
21
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
22 OPTIONS:
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
23
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
24 -V Print the program name and version number to stdout and exit
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
25
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
26 -h Print this help message to stdout and exit
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
27
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
28 COMMANDS:
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
29
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
30 audit
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
31
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
32 `pkg audit` on the local host and all running visible jails
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
33
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
34 update
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
35
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
36 `pkg update` on the local host and all running visible jails
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
37
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
38 upgrade
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
39
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
40 `pkg upgrade` on the local host and all running visible jails
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
41
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
42 upgrade-check
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
43
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
44 `pkg upgrade -n` on the local host and all running visible jails
91
fffee187f1f7 Docu: effective environment variables
Franz Glasner <fzglas.hg@dom66.de>
parents: 90
diff changeset
45
fffee187f1f7 Docu: effective environment variables
Franz Glasner <fzglas.hg@dom66.de>
parents: 90
diff changeset
46 ENVIRONMENT:
fffee187f1f7 Docu: effective environment variables
Franz Glasner <fzglas.hg@dom66.de>
parents: 90
diff changeset
47
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
48 FPKG_AUDIT_FLAGS
91
fffee187f1f7 Docu: effective environment variables
Franz Glasner <fzglas.hg@dom66.de>
parents: 90
diff changeset
49 Additional flags given to `pkg audit`
fffee187f1f7 Docu: effective environment variables
Franz Glasner <fzglas.hg@dom66.de>
parents: 90
diff changeset
50 (Default: -Fr)
fffee187f1f7 Docu: effective environment variables
Franz Glasner <fzglas.hg@dom66.de>
parents: 90
diff changeset
51
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
52 FPKG_UPDATE_FLAGS
91
fffee187f1f7 Docu: effective environment variables
Franz Glasner <fzglas.hg@dom66.de>
parents: 90
diff changeset
53 Additional flags given to `pkg update`
fffee187f1f7 Docu: effective environment variables
Franz Glasner <fzglas.hg@dom66.de>
parents: 90
diff changeset
54 (Default: empty)
fffee187f1f7 Docu: effective environment variables
Franz Glasner <fzglas.hg@dom66.de>
parents: 90
diff changeset
55
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
56 FPKG_UPGRADE_FLAGS
91
fffee187f1f7 Docu: effective environment variables
Franz Glasner <fzglas.hg@dom66.de>
parents: 90
diff changeset
57 Additional flags given to `pkg upgrade` and `pkg upgrade -n`
fffee187f1f7 Docu: effective environment variables
Franz Glasner <fzglas.hg@dom66.de>
parents: 90
diff changeset
58 (Default: empty)
fffee187f1f7 Docu: effective environment variables
Franz Glasner <fzglas.hg@dom66.de>
parents: 90
diff changeset
59
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
60 FPKG_SIGN
91
fffee187f1f7 Docu: effective environment variables
Franz Glasner <fzglas.hg@dom66.de>
parents: 90
diff changeset
61 Marker for the begin of an output group (local host or jail)
fffee187f1f7 Docu: effective environment variables
Franz Glasner <fzglas.hg@dom66.de>
parents: 90
diff changeset
62 (Default: "===> ")
fffee187f1f7 Docu: effective environment variables
Franz Glasner <fzglas.hg@dom66.de>
parents: 90
diff changeset
63
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
64 FPKG_SKIPSIGN
98
0dd831416b0e Document `SKIPSIGN'
Franz Glasner <fzglas.hg@dom66.de>
parents: 97
diff changeset
65 Marker for the begin of a skipped output group
0dd831416b0e Document `SKIPSIGN'
Franz Glasner <fzglas.hg@dom66.de>
parents: 97
diff changeset
66 (Default: "----> ")
0dd831416b0e Document `SKIPSIGN'
Franz Glasner <fzglas.hg@dom66.de>
parents: 97
diff changeset
67
91
fffee187f1f7 Docu: effective environment variables
Franz Glasner <fzglas.hg@dom66.de>
parents: 90
diff changeset
68 All other environment variables that affect `pkg` are effective also.
88
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
69 '
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
70
109
0bd594fb56f8 Read the tools.conf configuration file where appropriate
Franz Glasner <fzglas.hg@dom66.de>
parents: 107
diff changeset
71 #
0bd594fb56f8 Read the tools.conf configuration file where appropriate
Franz Glasner <fzglas.hg@dom66.de>
parents: 107
diff changeset
72 # Configuration directory
0bd594fb56f8 Read the tools.conf configuration file where appropriate
Franz Glasner <fzglas.hg@dom66.de>
parents: 107
diff changeset
73 #
0bd594fb56f8 Read the tools.conf configuration file where appropriate
Franz Glasner <fzglas.hg@dom66.de>
parents: 107
diff changeset
74 : ${CONFIGDIR:=@@ETCDIR@@}
0bd594fb56f8 Read the tools.conf configuration file where appropriate
Franz Glasner <fzglas.hg@dom66.de>
parents: 107
diff changeset
75
0bd594fb56f8 Read the tools.conf configuration file where appropriate
Franz Glasner <fzglas.hg@dom66.de>
parents: 107
diff changeset
76 test -r "${CONFIGDIR}/tools.conf" && . "${CONFIGDIR}/tools.conf"
0bd594fb56f8 Read the tools.conf configuration file where appropriate
Franz Glasner <fzglas.hg@dom66.de>
parents: 107
diff changeset
77
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
78 : ${FPKG_AUDIT_FLAGS:=-Fr}
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
79 : ${FPKG_UPDATE_FLAGS:=}
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
80 : ${FPKG_UPGRADE_FLAGS:=}
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
81 : ${FPKG_SIGN:='===> '}
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
82 : ${FPKG_SKIPSIGN:='----> '}
95
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
83
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
84
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
85 has_same_userland_version() {
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
86 : 'Check whether the jail `_jail` has the same FreeBSD userland version
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
87 as the host the the current process runs.
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
88
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
89 Args:
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
90 _jail: the running jail to check for
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
91
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
92 Returns:
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
93 0 if the userland versions match, 1 otherwise
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
94
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
95 '
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
96 local _jail _host_version _jail_version
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
97
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
98 _jail="$1"
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
99
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
100 _host_version=$(/bin/freebsd-version -u) || exit 1
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
101 _jail_version=$(jexec -l "${_jail}" /bin/freebsd-version -u) || exit 1
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
102 if [ "${_host_version%%-*}" = "${_jail_version%%-*}" ]; then
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
103 return 0
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
104 fi
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
105 return 1
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
106 }
88
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
107
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
108
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
109 command_audit() {
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
110 : 'Do a local `pkg audit -Fr` and also for all running jails
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
111
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
112 '
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
113 echo "${FPKG_SIGN}LOCALHOST"
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
114 pkg audit ${FPKG_AUDIT_FLAGS}
88
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
115 for _j in $(jls -N | awk '{if(NR>1)print $1}' | sort); do
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
116 echo ""
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
117 echo "${FPKG_SIGN}JAIL: ${_j}"
95
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
118 if has_same_userland_version "${_j}"; then
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
119 pkg -j "${_j}" audit ${FPKG_AUDIT_FLAGS}
95
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
120 else
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
121 echo "${FPKG_SKIPSIGN}SKIPPED because of different userland"
95
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
122 fi
88
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
123 done
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
124 }
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
125
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
126
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
127 command_update() {
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
128 : 'Do a local `pkg update` and also for all running jails
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
129
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
130 '
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
131 echo "${FPKG_SIGN}LOCALHOST"
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
132 pkg update ${FPKG_UPDATE_FLAGS}
88
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
133 for _j in $(jls -N | awk '{if(NR>1)print $1}' | sort); do
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
134 echo ""
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
135 echo "${FPKG_SIGN}JAIL: ${_j}"
95
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
136 if has_same_userland_version "${_j}"; then
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
137 pkg -j "${_j}" update ${FPKG_UPDATE_FLAGS}
95
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
138 else
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
139 echo "${FPKG_SKIPSIGN}SKIPPED because of different userland"
95
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
140 fi
88
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
141 done
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
142 }
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
143
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
144
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
145 command_upgrade() {
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
146 : 'Do a local `pkg upgrade` and also for all running jails
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
147
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
148 '
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
149 echo "${FPKG_SIGN}LOCALHOST"
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
150 pkg upgrade ${FPKG_UPGRADE_FLAGS}
88
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
151 for _j in $(jls -N | awk '{if(NR>1)print $1}' | sort); do
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
152 echo ""
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
153 echo "${FPKG_SIGN}JAIL: ${_j}"
95
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
154 if has_same_userland_version "${_j}"; then
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
155 pkg -j "${_j}" upgrade ${FPKG_UPGRADE_FLAGS}
95
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
156 else
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
157 echo "${FPKG_SKIPSIGN}SKIPPED because of different userland"
95
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
158 fi
88
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
159 done
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
160 }
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
161
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
162
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
163 command_upgrade_check() {
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
164 : 'Do a local `pkg upgrade -n` and also for all running jails
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
165
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
166 '
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
167 echo "${FPKG_SIGN}LOCALHOST"
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
168 pkg upgrade -n ${FPKG_UPGRADE_FLAGS}
88
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
169 for _j in $(jls -N | awk '{if(NR>1)print $1}' | sort); do
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
170 echo ""
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
171 echo "${FPKG_SIGN}JAIL: ${_j}"
95
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
172 if has_same_userland_version "${_j}"; then
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
173 pkg -j "${_j}" upgrade -n ${FPKG_UPGRADE_FLAGS}
95
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
174 else
107
f8642efe05a1 Renamed (environment/configuration) variables to have a FPKG_ prefix.
Franz Glasner <fzglas.hg@dom66.de>
parents: 99
diff changeset
175 echo "${FPKG_SKIPSIGN}SKIPPED because of different userland"
95
e8c422379abb Do package checks only for jails with compatible (i.e. "equal") userland versions with the host
Franz Glasner <fzglas.hg@dom66.de>
parents: 93
diff changeset
176 fi
88
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
177 done
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
178 }
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
179
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
180
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
181 #
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
182 # Global option handling
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
183 #
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
184 while getopts "Vh" _opt ; do
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
185 case ${_opt} in
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
186 V)
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
187 echo "fpkg v${VERSION} (rv:@@HGREVISION@@)"
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
188 exit 0
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
189 ;;
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
190 h)
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
191 echo "${USAGE}"
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
192 exit 0
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
193 ;;
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
194 \?)
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
195 exit 2;
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
196 ;;
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
197 *)
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
198 echo "ERROR: option handling failed" >&2
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
199 exit 2
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
200 ;;
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
201 esac
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
202 done
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
203
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
204 #
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
205 # Reset the Shell's option handling system to prepare for handling
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
206 # command-local options.
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
207 #
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
208 shift $((OPTIND-1))
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
209 OPTIND=1
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
210
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
211 command="$1"
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
212 shift
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
213
90
aefad9391470 Extra error message if not command is given
Franz Glasner <fzglas.hg@dom66.de>
parents: 88
diff changeset
214 test -n "$command" || { echo "ERROR: no command given" >&2; exit 2; }
aefad9391470 Extra error message if not command is given
Franz Glasner <fzglas.hg@dom66.de>
parents: 88
diff changeset
215
88
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
216 case "${command}" in
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
217 audit)
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
218 command_audit "$@"
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
219 ;;
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
220 update)
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
221 command_update "$@"
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
222 ;;
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
223 upgrade)
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
224 command_upgrade "$@"
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
225 ;;
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
226 upgrade-check|upgrade_check)
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
227 command_upgrade_check "$@"
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
228 ;;
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
229 *)
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
230 echo "ERROR: unknown command \`${command}'" >&2
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
231 exit 2;
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
232 ;;
76ddab9ab965 Add a tool for host and jail "pkg" management
Franz Glasner <hg@dom66.de>
parents:
diff changeset
233 esac