services: separate volume clear and rm

This commit is contained in:
Girish Ramakrishnan
2025-01-12 18:08:53 +01:00
parent 665f7c849b
commit e34e479c33
5 changed files with 47 additions and 16 deletions

View File

@@ -17,8 +17,7 @@ if [[ "$1" == "--check" ]]; then
exit 0
fi
cmd="$1"
volume_dir="$2"
volume_dir="12"
if [[ "${BOX_ENV}" == "test" ]]; then
# be careful not to nuke some random directory when testing
@@ -30,11 +29,6 @@ if [[ -d "${volume_dir}" ]]; then
find "${volume_dir}" -maxdepth 1 -mindepth 1 -exec rm -rf '{}' \;
fi
if [[ "${cmd}" == "clear" ]]; then
mkdir -p "${volume_dir}"
# set it up so that we can restore here as normal user
chown $SUDO_USER:$SUDO_USER "${volume_dir}"
else
# this make not succeed if volume is a mount point
rmdir "${volume_dir}" || true
fi
mkdir -p "${volume_dir}"
# set it up so that we can restore here as normal user
chown $SUDO_USER:$SUDO_USER "${volume_dir}"

33
src/scripts/rmvolume.sh Executable file
View File

@@ -0,0 +1,33 @@
#!/bin/bash
set -eu -o pipefail
if [[ ${EUID} -ne 0 ]]; then
echo "This script should be run as root." > /dev/stderr
exit 1
fi
if [[ $# -eq 0 ]]; then
echo "No arguments supplied"
exit 1
fi
if [[ "$1" == "--check" ]]; then
echo "OK"
exit 0
fi
volume_dir="$1"
if [[ "${BOX_ENV}" == "test" ]]; then
# be careful not to nuke some random directory when testing
[[ "${volume_dir}" != *"/.cloudron_test/"* ]] && exit 1
fi
if [[ -d "${volume_dir}" ]]; then
# this removes hidden files
find "${volume_dir}" -maxdepth 1 -mindepth 1 -exec rm -rf '{}' \;
fi
# this make not succeed if volume is a mount point
rmdir "${volume_dir}" || true