From 320bcde2b224f15357e6ab7f07c438d0bc75e18b Mon Sep 17 00:00:00 2001 From: tschettervictor <85497460+tschettervictor@users.noreply.github.com> Date: Fri, 28 Feb 2025 17:15:10 -0700 Subject: [PATCH] create: Allow specifying a custom config file to override default --- usr/local/share/bastille/create.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/usr/local/share/bastille/create.sh b/usr/local/share/bastille/create.sh index 78f4a78f..e59be833 100644 --- a/usr/local/share/bastille/create.sh +++ b/usr/local/share/bastille/create.sh @@ -43,6 +43,7 @@ usage() { -B | --bridge Enables VNET, VNET containers are attached to a specified, already existing external bridge. -C | --clone Creates a clone container, they are duplicates of the base release, consume low space and preserves changing data. + -c | --config Use a customized configuration file to override the default values. -D | --dual Creates the jails with both IPv4 and IPv6 networking ('inherit' and 'ip_hostname' only). -E | --empty Creates an empty container, intended for custom jail builds (thin/thick/linux or unsupported). -L | --linux This option is intended for testing with Linux jails, this is considered experimental. @@ -667,6 +668,7 @@ LINUX_JAIL="" STATIC_MAC="" DUAL_STACK="" VALIDATE_RELEASE="1" +OPT_CONFIG="" while [ $# -gt 0 ]; do case "${1}" in -h|--help|help) @@ -681,6 +683,22 @@ while [ $# -gt 0 ]; do CLONE_JAIL="1" shift ;; + -c|--config) + OPT_CONFIG="${2}" + if [ ! -f "${OPT_CONFIG}" ]; then + if [ ! -f /usr/local/etc/bastille/${OPT_CONFIG} ]; then + error_notify "Not a valid config file: ${OPT_CONFIG}" + usage + else + info "Using custom config: ${OPT_CONFIG}" + . /usr/local/etc/bastille/${OPT_CONFIG} + fi + else + info "Using custom config: ${OPT_CONFIG}" + . "${OPT_CONFIG}" + fi + shift 2 + ;; -D|--dual) DUAL_STACK="1" shift