@@ -20,14 +20,14 @@ install()
2020
2121configure ()
2222{
23- (
23+
2424 set -e -o pipefail
2525 local datadir parentdir encdir tmpdir
2626 datadir=" $( get_ncpcfg datadir) "
2727 [[ " ${datadir?} " == " null" ]] && datadir=/var/www/nextcloud/data
2828 parentdir=" $( dirname " ${datadir} " ) "
2929 encdir=" ${parentdir?} /ncdata_enc"
30- tmpdir=" $( mktemp -u -p " ${parentdir} " -t nc-data-crypt.XXXXXX) ) "
30+ tmpdir=" $( mktemp -u -p " ${parentdir} " -t nc-data-crypt.XXXXXX) "
3131
3232 [[ " ${ACTIVE?} " != " yes" ]] && {
3333 if ! is_active; then
@@ -59,7 +59,7 @@ configure()
5959 # Just mount already encrypted data
6060 if [[ -f " ${encdir?} " /gocryptfs.conf ]]; then
6161 systemctl reset-failed ncp-encrypt || :
62- systemd-run -u ncp-encrypt -E PASSWORD bash -c " gocryptfs -allow_other -q '${encdir} ' '${datadir} ' <<<\"\$ {PASSWORD}\" 2>&1 | sed /^Switch/d |& tee /var/log/ncp-encrypt.log"
62+ systemd-run -u ncp-encrypt -E PASSWORD bash -c " gocryptfs -fg - allow_other -q '${encdir} ' '${datadir} ' <<<\"\$ {PASSWORD}\" 2>&1 | sed /^Switch/d |& tee /var/log/ncp-encrypt.log"
6363
6464 # switch to the regular virtual hosts after we decrypt, so we can access NC and ncp-web
6565 a2ensite ncp 001-nextcloud
@@ -72,13 +72,33 @@ configure()
7272 mkdir -p " ${encdir?} "
7373 echo " ${PASSWORD?} " | gocryptfs -init -q " ${encdir} "
7474 save_maintenance_mode
75+ cleanup () {
76+ umount " ${datadir} " || :
77+ [[ -f " ${tmpdir} " ]] && {
78+ rm -rf " ${datadir?} " || :
79+ mv " ${tmpdir} " " ${datadir} "
80+
81+ chown -R www-data:www-data " ${datadir} "
82+ }
83+ }
84+
85+ trap cleanup 1
7586 trap restore_maintenance_mode EXIT
7687
7788 mv " ${datadir?} " " ${tmpdir?} "
7889
7990 mkdir " ${datadir} "
8091 systemctl reset-failed ncp-encrypt || :
81- systemd-run -u ncp-encrypt -E PASSWORD bash -c " gocryptfs -allow_other -q '${encdir} ' '${datadir} ' <<<\"\$ {PASSWORD}\" 2>&1 | sed /^Switch/d |& tee /var/log/ncp-encrypt.log"
92+ systemd-run -u ncp-encrypt -E PASSWORD bash -c " gocryptfs -fg -allow_other -q '${encdir} ' '${datadir} ' <<<\"\$ {PASSWORD}\" 2>&1 | sed /^Switch/d |& tee /var/log/ncp-encrypt.log"
93+
94+ maxtries=5
95+ while [[ " $( systemctl is-active ncp-encrypt) " != " active" ]] || ! mount | grep -1 " ${datadir} "
96+ do
97+ echo " Wating for encryption process to start... (${maxtries} )"
98+ sleep 3
99+ maxtries=$(( maxtries - 1 ))
100+ [[ $maxtries -gt 0 ]] || return 1
101+ done
82102
83103 echo " Encrypting data..."
84104 mv " ${tmpdir} " /* " ${tmpdir} " /.[! .]* " ${datadir} "
@@ -88,7 +108,7 @@ configure()
88108 set_ncpcfg datadir " ${datadir} "
89109
90110 echo " Data is now encrypted"
91- )
111+
92112}
93113
94114# License
0 commit comments