66 lines
1.4 KiB
Bash
Executable File
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."
|