admin-scripts/post_startup.sh

66 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
set -o allexport
source .post_startup_env
set +o allexport
check_datasets_to_unlock () {
local num_datasets_to_unlock=0
for dataset in $(zfs list -H -p -o name,encryptionroot | awk -F "\t" '{if ($1 == $2) { print $1 }}')
do
if [ "$(zfs get -H -p -o value keylocation "$dataset")" = "prompt" ] && [ "$(zfs get -H -p -o value keystatus "$dataset")" = "unavailable" ]
then
local num_datasets_to_unlock=$((num_datasets_to_unlock+1))
fi
done
return $num_datasets_to_unlock
}
# /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// ///
echo "Checking for locked datasets..."
echo
while true; do
check_datasets_to_unlock
datasets_to_unlock=$?
sleep 1
if [[ "$datasets_to_unlock" -eq "0" ]]; then
echo "All datasets have been unlocked."
echo
break
else
echo "There are $datasets_to_unlock dataset(s) to unlock:"
echo
sudo /usr/bin/zfs mount -a -l
echo
fi
done
echo
echo "Starting relevant docker containers..."
echo
sleep 1
for docker_folder in ${DOCKERS_TO_START//,/ }
do
sudo --user=docker /usr/bin/docker compose --file $DOCKER_HOME/$docker_folder/docker-compose.yml up -d
echo
done
echo
echo "Restarting relevant docker containers..."
echo
sleep 1
for docker_folder in ${DOCKERS_TO_RESTART//,/ }
do
sudo --user=docker /usr/bin/docker compose --file $DOCKER_HOME/$docker_folder/docker-compose.yml restart
echo
done
echo
echo "Completed post startup script."