diff options
Diffstat (limited to 'manage-baserock')
-rwxr-xr-x | manage-baserock | 22 |
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 ;; |