commit 490b71a2cd862f90538d3cf1ea5b26d6124881c4
parent 6220dc5a83eeff6355d94ce2b4243b8d932cd83c
Author: parazyd <parazyd@dyne.org>
Date: Mon, 7 Mar 2016 20:52:08 +0100
webdav implementation
Diffstat:
2 files changed, 57 insertions(+), 1 deletion(-)
diff --git a/bin/sacrist b/bin/sacrist
@@ -110,6 +110,7 @@ _ttabmagic() {
sudo -u $undertaker $tomb open $graveyard/$tombid.tomb -k $coffindot/$tombid.key \
--unsafe --tomb-pwd "$keypass"
+ chmod g+rw /media/$tombid
if [[ -d "/media/$tombid" ]]; then
print "$undertaker:$keyhash:$keyuuid" >> $tombs && chmod 600 $tombs && _msg info "Added info to $tombs"
else
@@ -142,6 +143,20 @@ _create_new_tomb() {
_msg warn "User $undertaker exists. Continuing..."
fi
+ if [[ $entry =~ webdav && -f $coffindot/webdav.conf ]]; then
+ _msg info "Found WebDAV data. Setting up..."
+ cat $coffindot/davinfo >> /etc/apache2/davpasswd
+ _msg info "Wrote to davpasswd"
+ sed -i -e :a -e '$d;N;2,3ba' -e 'P;D' /etc/apache2/sites-available/tomboxdav.conf
+ cat webdav.conf >> /etc/apache2/sites-available/tomboxdav.conf
+ _msg info "Wrote to tomboxdav.conf"
+ gpasswd -a www-data $undertaker
+ /etc/init.d/apache2 restart
+ _msg info "Done setting up WebDAV!"
+ else
+ _msg info "No WebDAV data found. Continuing..."
+ fi
+
sudo -u $undertaker $tomb dig -s $tombsize $graveyard/$tombid.tomb
sudo -u $undertaker $tomb forge $graveyard/$tombid.key --unsafe --tomb-pwd "$keypass"
sudo -u $undertaker $tomb lock $graveyard/$tombid.tomb -k $graveyard/$tombid.key \
@@ -149,7 +164,7 @@ _create_new_tomb() {
mv $graveyard/$tombid.key $coffindot/ && chown $undertaker:$undertaker $coffindot/$tombid.key && \
_msg info "Moved and chowned keyfile"
- print "$undertaker:${tombid}:true" >> $ttab
+ print "${undertaker}:${tombid}:true" >> $ttab
keyhash=$(_hashkey)
print "${keyhash}:${keypass}" >> $tombpasswd
_msg info "Wrote to $ttab and $tombpasswd"
diff --git a/gmakehook b/gmakehook
@@ -230,6 +230,35 @@ function _mountkey {
fi
}
+# {{{ _writedavinfo
+function _writedavinfo {
+ if [[ -n $davpass ]]; then
+ davinfo=$(echo -n "$UNDERTAKER:WebDAV:" \
+ && echo -n "$UNDERTAKER:WebDAV:$davpass" \
+ | md5sum \
+ | awk '{print $1}')
+ print $davinfo > $coffindot/davinfo
+ fi
+
+ cat <<EOF > $coffindot/webdav.conf
+
+ alias /${TOMBNAME} /media/${TOMBNAME}
+ <Directory "/media/${TOMBNAME}">
+ Dav On
+ AllowOverride none
+ Options Indexes FollowSymlinks
+ AuthType Digest
+ AuthName WebDAV
+ AuthUserFile /etc/apache2/davpasswd
+ Require user ${UNDERTAKER}
+ </Directory>
+
+ </VirtualHost>
+</IfModule>
+EOF
+}
+# }}}
+
function _main {
_clean
cmnd=$(zenity \
@@ -295,6 +324,16 @@ function _create {
"FALSE" "ipfs")
if [[ $? = 1 ]]; then; exec _main; fi
+ if [[ $feats =~ "webdav" ]]; then
+ _zenques "Do you already have a WebDAV login?"
+ if [[ $? = 1 ]]; then
+ davpass=$(_zenentry "WebDAV Password" \
+ "Insert the password you want to use for WebDAV login:" \
+ "my very strong password")
+ if [[ $? = 1 ]]; then; davpass=""; fi
+ fi
+ fi
+
TOMBHOOKS=$(_zenques "Choose 'Yes' if you want to edit your tomb's bind-hooks and post-hooks")
if [[ $? = 0 ]]; then
bindhook=$(zenity \
@@ -336,6 +375,7 @@ function _create {
_zeninfo "gmakehook" "Postponing..." && _umountkey && exec _main
else
print "create:${UNDERTAKER}:${TOMBNAME}:${TOMBSIZE}:${feats}" | sudo tee $hooks
+ if [[ $feats =~ "webdav" ]]; then; _writedavinfo; fi
if [[ -n $bindhook ]]; then
print "$bindhook" | sudo tee $coffindot/bindhooks
fi
@@ -347,6 +387,7 @@ function _create {
fi
else
print "create:${UNDERTAKER}:${TOMBNAME}:${TOMBSIZE}:${feats}" | sudo tee $hooks
+ if [[ $feats =~ "webdav" ]]; then; _writedavinfo; fi
if [[ -n $bindhook ]]; then
print "$bindhook" | sudo tee $coffindot/bindhooks
fi