Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
changeset 454:263b4d382155
"ftjail populate-tmpl" got a new "-b" flag and an optional parameter to preserver /boot and extract a kernel image also
| author | Franz Glasner <hg@dom66.de> |
|---|---|
| date | Tue, 04 Jun 2024 18:10:49 +0200 |
| parents | 5194d87e0b4b |
| children | 34f9f8c24223 |
| files | sbin/ftjail |
| diffstat | 1 files changed, 22 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/sbin/ftjail Tue May 14 09:46:54 2024 +0200 +++ b/sbin/ftjail Tue Jun 04 18:10:49 2024 +0200 @@ -281,13 +281,14 @@ command_populate_tmpl() { # MOUNTPOINT -- base.txz local _mp _basetxz - local _opt_symlink + local _opt_symlink _opt_preserve_boot local _opt _dir _opt_symlink="" + _opt_preserve_boot="" - while getopts "LP" _opt ; do + while getopts "LPb" _opt ; do case ${_opt} in L) _opt_symlink="yes" @@ -295,6 +296,9 @@ P) _opt_symlink="no" ;; + b) + _opt_preserve_boot="yes" + ;; \?) return 2; ;; @@ -307,6 +311,7 @@ _mp="${1-}" _basetxz="${2-}" + _kerneltxz="${3-}" if [ -z "${_mp}" ]; then echo "ERROR: no mountpoint given" >&2 @@ -344,7 +349,21 @@ (cd "${_mp}/root" && ln -s ../.cshrc .cshrc) || return fi - find "${_mp}/boot" -type f -delete || true + if [ \( "${_opt_preserve_boot}" = "yes" \) -o \( -n "${_kerneltxz}" \) ]; then + if [ "${_opt_symlink}" = "yes" ]; then + echo "ERROR: preserving boot or extracting a kernel not supported when using symlinks" >&2 + return 1 + fi + + if [ -n "${_kerneltxz}" ]; then + echo "Extracting kernel ..." + tar -C "${_mp}" -xJp -f "${_kerneltxz}" || return + else + echo "Preserved \"boot\"" + fi + else + find "${_mp}/boot" -type f -delete || true + fi }
