Skip to content

Commit 8f57115

Browse files
Merge branch 'master' into new_rewrite
2 parents 9c676f6 + 7d3ca7b commit 8f57115

File tree

2 files changed

+20
-13
lines changed

2 files changed

+20
-13
lines changed

usr/local/share/bastille/clone.sh

+4-12
Original file line numberDiff line numberDiff line change
@@ -164,12 +164,13 @@ update_jailconf_vnet() {
164164
if ! grep -q "epair${_num}" "${bastille_jailsdir}"/*/jail.conf; then
165165
local uniq_epair="bastille${_num}"
166166
local uniq_epair_bridge="${_num}"
167-
# since we don't have access to the external_interface variable, we cat the jail.conf file to retrieve the mac prefix
167+
# since we don't have access to the external_interface variable, we cat the jail.conf file to retrieve the mac prefix
168168
# we also do not use the main generate_static_mac function here
169169
local macaddr_prefix="$(cat ${JAIL_CONFIG} | grep -m 1 ether | grep -oE '([0-9a-f]{2}(:[0-9a-f]{2}){5})' | awk -F: '{print $1":"$2":"$3}')"
170-
local macaddr_suffix="$(echo -n ${NEWNAME} | sha256 | cut -b -5 | sed 's/\([0-9a-fA-F][0-9a-fA-F]\)\([0-9a-fA-F][0-9a-fA-F]\)\([0-9a-fA-F]\)/\1:\2:\3/')"
170+
local macaddr_suffix="$(echo -n ${NEWNAME} | sha256 | cut -b -5 | sed 's/\([0-9a-fA-F][0-9a-fA-F]\)\([0-9a-fA-F][0-9a-fA-F]\)\([0-9a-fA-F]\)/\1:\2:\3/')"
171+
local macaddr_suffix="$(echo -n ${NEWNAME} | sha256 | cut -b -5 | sed 's/\([0-9a-fA-F][0-9a-fA-F]\)\([0-9a-fA-F][0-9a-fA-F]\)\([0-9a-fA-F]\)/\1:\2:\3/')"
171172
local macaddr="${macaddr_prefix}:${macaddr_suffix}"
172-
# Update the exec.* with uniq_epair when cloning jails.
173+
# Update the exec.* with uniq_epair when cloning jails.
173174
# for VNET jails
174175
sed -i '' "s|bastille\([0-9]\{1,\}\)|${uniq_epair}|g" "${JAIL_CONFIG}"
175176
sed -i '' "s|e\([0-9]\{1,\}\)a_${NEWNAME}|e${uniq_epair_bridge}a_${NEWNAME}|g" "${JAIL_CONFIG}"
@@ -200,15 +201,6 @@ update_fstab() {
200201
# Update fstab to use the new name
201202
FSTAB_CONFIG="${bastille_jailsdir}/${NEWNAME}/fstab"
202203
if [ -f "${FSTAB_CONFIG}" ]; then
203-
FSTAB_RELEASE=$(grep -owE '([1-9]{2,2})\.[0-9](-RELEASE|-RELEASE-i386|-RC[1-9]|-BETA[1-9]|-CURRENT)|([0-9]{1,2}(-stable-build-[0-9]{1,3}|-stable-LAST))|(current-build)-([0-9]{1,3})|(current-BUILD-LATEST)|([0-9]{1,2}-stable-BUILD-LATEST)' "${FSTAB_CONFIG}" | uniq)
204-
FSTAB_CURRENT=$(grep -w ".*/releases/.*/jails/${TARGET}/root/.bastille" "${FSTAB_CONFIG}")
205-
FSTAB_NEWCONF="${bastille_releasesdir}/${FSTAB_RELEASE} ${bastille_jailsdir}/${NEWNAME}/root/.bastille nullfs ro 0 0"
206-
if [ -n "${FSTAB_CURRENT}" ] && [ -n "${FSTAB_NEWCONF}" ]; then
207-
# If both variables are set, update as needed
208-
if ! grep -qw "${bastille_releasesdir}/${FSTAB_RELEASE}.*${bastille_jailsdir}/${NEWNAME}/root/.bastille" "${FSTAB_CONFIG}"; then
209-
sed -i '' "s|${FSTAB_CURRENT}|${FSTAB_NEWCONF}|" "${FSTAB_CONFIG}"
210-
fi
211-
fi
212204
# Update additional fstab paths with new jail path
213205
sed -i '' "s|${bastille_jailsdir}/${TARGET}/root/|${bastille_jailsdir}/${NEWNAME}/root/|" "${FSTAB_CONFIG}"
214206
fi

usr/local/share/bastille/list.sh

+16-1
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,22 @@ list_all(){
146146
JAIL_HOSTNAME=${JAIL_HOSTNAME:-${DEFAULT_VALUE}}
147147
JAIL_RELEASE=${JAIL_RELEASE:-${DEFAULT_VALUE}}
148148
JAIL_PATH=${JAIL_PATH:-${DEFAULT_VALUE}}
149-
printf " ${JAIL_NAME}%*s${JAIL_STATE}%*s${JAIL_IP}%*s${JAIL_PORTS}%*s${JAIL_HOSTNAME}%*s${JAIL_RELEASE}%*s${JAIL_PATH}\n" "$((${MAX_LENGTH_JAIL_NAME} - ${#JAIL_NAME} + ${SPACER}))" "" "$((5 - ${#JAIL_STATE} + ${SPACER}))" "" "$((${MAX_LENGTH_JAIL_IP} - ${#JAIL_IP} + ${SPACER}))" "" "$((${MAX_LENGTH_JAIL_PORTS} - ${#JAIL_PORTS} + ${SPACER}))" "" "$((${MAX_LENGTH_JAIL_HOSTNAME} - ${#JAIL_HOSTNAME} + ${SPACER}))" "" "$((${MAX_LENGTH_JAIL_RELEASE} - ${#JAIL_RELEASE} + ${SPACER}))" ""
149+
JAIL_IP_COUNT=$(echo "${JAIL_IP}" | wc -l)
150+
if [ ${JAIL_IP_COUNT} -gt 1 ]; then
151+
# vnet0 has more than one IPs assigned.
152+
# Put each IP in its own line below the jails first address. For instance:
153+
# JID State IP Address Published Ports Hostname Release Path
154+
# foo Up 10.10.10.10 - foo 14.0-RELEASE-p5 /usr/local/bastille/jails/foo/root
155+
# 10.10.10.11
156+
# 10.10.10.12
157+
FIRST_IP="$(echo "${JAIL_IP}" | head -n 1)"
158+
printf " ${JAIL_NAME}%*s${JAIL_STATE}%*s${FIRST_IP}%*s${JAIL_PORTS}%*s${JAIL_HOSTNAME}%*s${JAIL_RELEASE}%*s${JAIL_PATH}\n" "$((${MAX_LENGTH_JAIL_NAME} - ${#JAIL_NAME} + ${SPACER}))" "" "$((5 - ${#JAIL_STATE} + ${SPACER}))" "" "$((${MAX_LENGTH_JAIL_IP} - ${#FIRST_IP} + ${SPACER}))" "" "$((${MAX_LENGTH_JAIL_PORTS} - ${#JAIL_PORTS} + ${SPACER}))" "" "$((${MAX_LENGTH_JAIL_HOSTNAME} - ${#JAIL_HOSTNAME} + ${SPACER}))" "" "$((${MAX_LENGTH_JAIL_RELEASE} - ${#JAIL_RELEASE} + ${SPACER}))" ""
159+
for IP in $(echo "${JAIL_IP}" | tail -n +2); do
160+
printf "%*s %*s${IP}\n" "$((${MAX_LENGTH_JAIL_NAME} + ${SPACER}))" "" "$((5 + ${SPACER}))" ""
161+
done
162+
else
163+
printf " ${JAIL_NAME}%*s${JAIL_STATE}%*s${JAIL_IP}%*s${JAIL_PORTS}%*s${JAIL_HOSTNAME}%*s${JAIL_RELEASE}%*s${JAIL_PATH}\n" "$((${MAX_LENGTH_JAIL_NAME} - ${#JAIL_NAME} + ${SPACER}))" "" "$((5 - ${#JAIL_STATE} + ${SPACER}))" "" "$((${MAX_LENGTH_JAIL_IP} - ${#JAIL_IP} + ${SPACER}))" "" "$((${MAX_LENGTH_JAIL_PORTS} - ${#JAIL_PORTS} + ${SPACER}))" "" "$((${MAX_LENGTH_JAIL_HOSTNAME} - ${#JAIL_HOSTNAME} + ${SPACER}))" "" "$((${MAX_LENGTH_JAIL_RELEASE} - ${#JAIL_RELEASE} + ${SPACER}))" ""
164+
fi
150165
fi
151166
done
152167
else

0 commit comments

Comments
 (0)