58 lines
1.5 KiB
Bash
Executable File
58 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
source ~/.config/workspace.conf
|
|
key_vol_path="/dev/disk/by-uuid/$BACKUP_KEY_VOL_UUID"
|
|
data_vol_path="/dev/disk/by-uuid/$BACKUP_DATA_VOL_UUID"
|
|
|
|
data_mnt=
|
|
remote_open() {
|
|
data_mapper_name="$(lsblk "$data_vol_path" -no name --raw | awk 'NR==2')"
|
|
key_mnt="$(lsblk "$key_vol_path" -no mountpoint)"
|
|
if [ -z "$data_mapper_name" ]; then
|
|
echo unlocking data luks vol..
|
|
if [ -z "$key_mnt" ]; then
|
|
echo mounting key vol..
|
|
udisksctl mount -b "$key_vol_path"
|
|
key_mnt="$(lsblk "$key_vol_path" -no mountpoint)"
|
|
fi
|
|
echo decrypting key..
|
|
gpg --batch --yes --output /tmp/backup-keyfile --decrypt "$key_mnt/keyfile.gpg"
|
|
udisksctl unlock -b "$data_vol_path" --key-file /tmp/backup-keyfile
|
|
data_mapper_name="$(lsblk "$data_vol_path" -no name --raw | awk 'NR==2')"
|
|
echo unlock ok, doing key cleanup
|
|
fi
|
|
rm -f /tmp/backup-keyfile
|
|
[ -n "$key_mnt" ] && udisksctl unmount -b "$key_vol_path"
|
|
data_mnt="$(lsblk "/dev/mapper/$data_mapper_name" -no mountpoint)"
|
|
if [ -z "$data_mnt" ]; then
|
|
echo mounting data vol..
|
|
udisksctl mount -b "/dev/mapper/$data_mapper_name"
|
|
data_mnt="$(lsblk "/dev/mapper/$data_mapper_name" -no mountpoint)"
|
|
fi
|
|
echo open done
|
|
}
|
|
|
|
remote_close() {
|
|
data_mapper_name="$(lsblk "$data_vol_path" -no name --raw | awk 'NR==2')"
|
|
if [ -n "$data_mapper_name" ]; then
|
|
echo unmounting data vol..
|
|
udisksctl unmount -b "/dev/mapper/$data_mapper_name"
|
|
fi
|
|
udisksctl lock -b "$data_vol_path" # must be open here (fail if not)
|
|
echo close done
|
|
}
|
|
|
|
push_homedir() {
|
|
|
|
}
|
|
|
|
remote_open
|
|
|
|
for g in $(groups); do
|
|
|
|
done
|
|
|
|
remote_close
|
|
echo ALL OK
|