summaryrefslogtreecommitdiff
path: root/manage-baserock
diff options
context:
space:
mode:
Diffstat (limited to 'manage-baserock')
-rwxr-xr-xmanage-baserock22
1 files changed, 22 insertions, 0 deletions
diff --git a/manage-baserock b/manage-baserock
index f7cc328..f1d7611 100755
--- a/manage-baserock
+++ b/manage-baserock
@@ -39,6 +39,11 @@ list_baserocks () {
(cd "${BASEROCK_BASE}" && ls -d */baserock) 2>/dev/null | sed -e's@/baserock$@@'
}
+list_sessions_for_system () {
+ local system="$1"
+ schroot --list --all-sessions | grep "^session:baserock-${system}"
+}
+
case "${ACTION}" in
list)
for SYSTEM in $(list_baserocks); do
@@ -140,6 +145,23 @@ EOF
echo "Sorry, $SYSTEM does not exist or is not a baserock chroot"
exit 1
fi
+
+ sessions="$(list_sessions_for_system $SYSTEM)"
+ if ! test -z $sessions; then
+ echo "I found the following active sessions for chroot '$SYSTEM':"
+ echo
+ echo "$sessions"
+ echo
+ echo "You might lose data in mounted filesystems if I were to"
+ echo "recursively delete path ${BASEROCK_BASE}/${SYSTEM}."
+ echo
+ echo "If you think these sessions are stale, you can run the "
+ echo "following command to end ALL schroot sessions:"
+ echo
+ echo " schroot --end-session --all-sessions"
+ exit 1
+ fi
+
rm -rf "${BASEROCK_BASE}/${SYSTEM}"
br-ct-sync-chroots
;;