itmoar small fixes - coffin - secure lan file storage on a device Err parazyd.org 70 hgit clone git://parazyd.org/coffin.git URL:git://parazyd.org/coffin.git parazyd.org 70 1Log /git/coffin/log.gph parazyd.org 70 1Files /git/coffin/files.gph parazyd.org 70 1Refs /git/coffin/refs.gph parazyd.org 70 1Submodules /git/coffin/file/.gitmodules.gph parazyd.org 70 1README /git/coffin/file/README.md.gph parazyd.org 70 1LICENSE /git/coffin/file/LICENSE.gph parazyd.org 70 i--- Err parazyd.org 70 1commit 1806989bd2345e4b85ce7cfa552ee0eb9fc4e0a6 /git/coffin/commit/1806989bd2345e4b85ce7cfa552ee0eb9fc4e0a6.gph parazyd.org 70 1parent 1e8db60c4b19043be11e3eadc62bb75520e118f1 /git/coffin/commit/1e8db60c4b19043be11e3eadc62bb75520e118f1.gph parazyd.org 70 hAuthor: parazyd URL:mailto:parazyd@dyne.org parazyd.org 70 iDate: Tue, 29 Mar 2016 17:55:32 +0200 Err parazyd.org 70 i Err parazyd.org 70 imoar small fixes Err parazyd.org 70 i Err parazyd.org 70 iDiffstat: Err parazyd.org 70 i M helpers/gmakehook | 322 ++++++++++++------------------- Err parazyd.org 70 i Err parazyd.org 70 i1 file changed, 120 insertions(+), 202 deletions(-) Err parazyd.org 70 i--- Err parazyd.org 70 1diff --git a/helpers/gmakehook b/helpers/gmakehook /git/coffin/file/helpers/gmakehook.gph parazyd.org 70 it@@ -12,6 +12,7 @@ typeset -H sudoassword Err parazyd.org 70 i keymount="/media/tombkey" Err parazyd.org 70 i coffindot="$keymount/.coffin" Err parazyd.org 70 i hooks="$coffindot/hook" Err parazyd.org 70 i+GRAVEYARD="/home/graveyard" Err parazyd.org 70 i Err parazyd.org 70 i # {{{ icon Err parazyd.org 70 i MONMORT="/tmp/monmort.png" Err parazyd.org 70 it@@ -25,7 +26,6 @@ WHRkYXRlOmNyZWF0ZQAyMDExLTAxLTEyVDA5OjM0OjI0KzAxOjAwo//d7wAAACV0RVh0ZGF0ZTpt Err parazyd.org 70 i b2RpZnkAMjAxMS0wMS0xMlQwOTozNDoyNCswMTowMNKiZVMAAAAASUVORK5CYII=" Err parazyd.org 70 i print "$ICONB64" | base64 --decode > $MONMORT Err parazyd.org 70 i # }}} Err parazyd.org 70 i- Err parazyd.org 70 i # {{{ sudo functions Err parazyd.org 70 i function _sudo { Err parazyd.org 70 i sudoassword=$(ask_password "Insert sudo password for user $USER") Err parazyd.org 70 it@@ -40,7 +40,6 @@ function _sudowrong { Err parazyd.org 70 i fi Err parazyd.org 70 i } Err parazyd.org 70 i # }}} Err parazyd.org 70 i- Err parazyd.org 70 i # {{{ Some pinentry code shamelessly stolen from tomb Err parazyd.org 70 i # Ask user for a password Err parazyd.org 70 i # Wraps around the pinentry command, from the GnuPG project, as it Err parazyd.org 70 it@@ -162,16 +161,6 @@ _is_found() { Err parazyd.org 70 i return $? Err parazyd.org 70 i } Err parazyd.org 70 i # }}} Err parazyd.org 70 i- Err parazyd.org 70 i-# {{{ _clean - Clean function, removes sensitive stuff from memory Err parazyd.org 70 i-function _clean { Err parazyd.org 70 i- TOMBSIZE="$rr"; unset TOMBSIZE Err parazyd.org 70 i- TOMBNAME="$rr"; unset TOMBNAME Err parazyd.org 70 i- UNDERTAKER="$rr"; unset UNDERTAKER Err parazyd.org 70 i- sudoassword="$rr"; unset sudoassword Err parazyd.org 70 i-} Err parazyd.org 70 i-# }}} Err parazyd.org 70 i- Err parazyd.org 70 i # {{{ zenity dialogs Err parazyd.org 70 i function _fsel { Err parazyd.org 70 i zenity \ Err parazyd.org 70 it@@ -216,27 +205,49 @@ function _zenentry { Err parazyd.org 70 i } Err parazyd.org 70 i # }}} Err parazyd.org 70 i Err parazyd.org 70 i-function _umountkey { sudo umount $keymount && sudo rmdir $keymount } Err parazyd.org 70 i-function _mountkey { Err parazyd.org 70 i- sudo umount $USBKEY Err parazyd.org 70 i- [[ $? = 0 ]] || { Err parazyd.org 70 i- _zenerr "Error" "Your key is mounted somewhere and I've run into issues. Please unmount it and re-run." Err parazyd.org 70 i- _clean && exit } Err parazyd.org 70 i+# {{{ _clean - Clean function, removes sensitive stuff from memory Err parazyd.org 70 i+function _clean { Err parazyd.org 70 i+ TOMBSIZE="$rr"; unset TOMBSIZE Err parazyd.org 70 i+ TOMBNAME="$rr"; unset TOMBNAME Err parazyd.org 70 i+ UNDERTAKER="$rr"; unset UNDERTAKER Err parazyd.org 70 i+ sudoassword="$rr"; unset sudoassword Err parazyd.org 70 i+} Err parazyd.org 70 i+# }}} Err parazyd.org 70 i+function _umountkey() { Err parazyd.org 70 i+ sudo umount $keymount \ Err parazyd.org 70 i+ && sudo rmdir $keymount Err parazyd.org 70 i+} Err parazyd.org 70 i Err parazyd.org 70 i- if [[ -d $keymount ]]; then Err parazyd.org 70 i+function _mountkey { Err parazyd.org 70 i+ [[ -d $keymount ]] && { Err parazyd.org 70 i _zenwarn "Warning" "Something is already mounted on $keymount. Please check and re-run." Err parazyd.org 70 i _clean && exit Err parazyd.org 70 i- fi Err parazyd.org 70 i+ } Err parazyd.org 70 i Err parazyd.org 70 i- sudo mkdir -p $keymount Err parazyd.org 70 i- sudo mount $USBKEY $keymount Err parazyd.org 70 i+ sudo mkdir -p $keymount Err parazyd.org 70 i+ sudo mount $USBKEY $keymount Err parazyd.org 70 i Err parazyd.org 70 i- if ! [[ -d $coffindot ]]; then Err parazyd.org 70 i- sudo mkdir $coffindot Err parazyd.org 70 i- fi Err parazyd.org 70 i+ [[ -d $coffindot ]] || sudo mkdir $coffindot Err parazyd.org 70 i+} Err parazyd.org 70 i+ Err parazyd.org 70 i+function _main { Err parazyd.org 70 i+ _clean Err parazyd.org 70 i+ cmnd=$(zenity \ Err parazyd.org 70 i+ --window-icon="$MONMORT" \ Err parazyd.org 70 i+ --title="coffin hook helper" \ Err parazyd.org 70 i+ --list \ Err parazyd.org 70 i+ --hide-header \ Err parazyd.org 70 i+ --text="coffin hook helper\nChoose what hook you want to create:" \ Err parazyd.org 70 i+ --separator=" # " \ Err parazyd.org 70 i+ --column=Function \ Err parazyd.org 70 i+ --column=Description \ Err parazyd.org 70 i+ "create" "a new tomb on the coffin" \ Err parazyd.org 70 i+ "delete" "a tomb from the coffin" \ Err parazyd.org 70 i+ "backup" "a tomb from the coffin" \ Err parazyd.org 70 i+ "foobar" "on the coffin") Err parazyd.org 70 i+ eval "_$cmnd" Err parazyd.org 70 i } Err parazyd.org 70 i Err parazyd.org 70 i-# {{{ _writedavinfo Err parazyd.org 70 i function _writedavinfo { Err parazyd.org 70 i if [[ -n $davpass ]]; then Err parazyd.org 70 i davinfo=$(echo -n "$UNDERTAKER:WebDAV:" \ Err parazyd.org 70 it@@ -255,7 +266,7 @@ function _writedavinfo { Err parazyd.org 70 i Options Indexes FollowSymlinks Err parazyd.org 70 i AuthType Digest Err parazyd.org 70 i AuthName WebDAV Err parazyd.org 70 i- AuthUserFile /etc/apache2/davpasswd Err parazyd.org 70 i+ AuthUserFile /etc/apache2/DAV/davpasswd Err parazyd.org 70 i Require user ${UNDERTAKER} Err parazyd.org 70 i Err parazyd.org 70 i Err parazyd.org 70 it@@ -263,25 +274,6 @@ function _writedavinfo { Err parazyd.org 70 i Err parazyd.org 70 i EOF Err parazyd.org 70 i } Err parazyd.org 70 i-# }}} Err parazyd.org 70 i- Err parazyd.org 70 i-function _main { Err parazyd.org 70 i- _clean Err parazyd.org 70 i- cmnd=$(zenity \ Err parazyd.org 70 i- --window-icon="$MONMORT" \ Err parazyd.org 70 i- --title="coffin hook helper" \ Err parazyd.org 70 i- --list \ Err parazyd.org 70 i- --hide-header \ Err parazyd.org 70 i- --text="coffin hook helper\nChoose what hook you want to create:" \ Err parazyd.org 70 i- --separator=" # " \ Err parazyd.org 70 i- --column=Function \ Err parazyd.org 70 i- --column=Description \ Err parazyd.org 70 i- "create" "a new tomb on the coffin" \ Err parazyd.org 70 i- "delete" "a tomb from the coffin" \ Err parazyd.org 70 i- "backup" "a tomb from the coffin" \ Err parazyd.org 70 i- "foobar" "on the coffin") Err parazyd.org 70 i- eval "_$cmnd" Err parazyd.org 70 i-} Err parazyd.org 70 i Err parazyd.org 70 i # {{{ _create Err parazyd.org 70 i function _create { Err parazyd.org 70 it@@ -294,27 +286,27 @@ function _create { Err parazyd.org 70 i --add-entry="coffin username" \ Err parazyd.org 70 i --add-entry="Tomb name" \ Err parazyd.org 70 i --add-entry="Tomb's size in MiB") Err parazyd.org 70 i- if [[ $? = 1 ]]; then Err parazyd.org 70 i- exec _main Err parazyd.org 70 i- else Err parazyd.org 70 i- UNDERTAKER=${vars[(ws@:@)1]} Err parazyd.org 70 i- re='^[A-Za-z0-9]+$' Err parazyd.org 70 i- if ! [[ $UNDERTAKER =~ $re ]]; then Err parazyd.org 70 i- _zenwarn "Warning" "Invalid characters in username!" Err parazyd.org 70 i- exec _create Err parazyd.org 70 i- fi Err parazyd.org 70 i- TOMBNAME=${vars[(ws@:@)2]} Err parazyd.org 70 i- if ! [[ $TOMBNAME =~ $re ]]; then Err parazyd.org 70 i- _zenwarn "Warning" "Invalid characters in tomb name!" Err parazyd.org 70 i- exec _create Err parazyd.org 70 i- fi Err parazyd.org 70 i- TOMBSIZE=${vars[(ws@:@)3]} Err parazyd.org 70 i- re='^[0-9]+$' Err parazyd.org 70 i- if ! [[ $TOMBSIZE =~ $re ]]; then Err parazyd.org 70 i- _zenwarn "Warning" "Invalid characters in tomb size!" Err parazyd.org 70 i- exec _create Err parazyd.org 70 i- fi Err parazyd.org 70 i- fi Err parazyd.org 70 i+ [[ $? = 0 ]] || exec _main Err parazyd.org 70 i+ Err parazyd.org 70 i+ UNDERTAKER=${vars[(ws@:@)1]} Err parazyd.org 70 i+ re='^[A-Za-z0-9]+$' Err parazyd.org 70 i+ [[ $UNDERTAKER =~ $re ]] || { Err parazyd.org 70 i+ _zenwarn "Warning" "Invalid characters in username!" Err parazyd.org 70 i+ exec _create Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+ TOMBNAME=${vars[(ws@:@)2]} Err parazyd.org 70 i+ [[ $TOMBNAME =~ $re ]] || { Err parazyd.org 70 i+ _zenwarn "Warning" "Invalid characters in tomb name!" Err parazyd.org 70 i+ exec _create Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+ TOMBSIZE=${vars[(ws@:@)3]} Err parazyd.org 70 i+ re='^[0-9]+$' Err parazyd.org 70 i+ [[ $TOMBSIZE =~ $re ]] || { Err parazyd.org 70 i+ _zenwarn "Warning" "Invalid characters in tomb size!" Err parazyd.org 70 i+ exec _create Err parazyd.org 70 i+ } Err parazyd.org 70 i Err parazyd.org 70 i feats=$(zenity \ Err parazyd.org 70 i --window-icon="$MONMORT" \ Err parazyd.org 70 it@@ -326,38 +318,33 @@ function _create { Err parazyd.org 70 i --column=Yes/No \ Err parazyd.org 70 i --column=Feature \ Err parazyd.org 70 i "FALSE" "webdav" \ Err parazyd.org 70 i- "FALSE" "sshfs" \ Err parazyd.org 70 i- "FALSE" "ipfs") Err parazyd.org 70 i- if [[ $? = 1 ]]; then; exec _main; fi Err parazyd.org 70 i+ "FALSE" "sshfs") Err parazyd.org 70 i+ [[ $? = 0 ]] || exec _main Err parazyd.org 70 i Err parazyd.org 70 i- if [[ $feats =~ "webdav" ]]; then Err parazyd.org 70 i+ [[ $feats =~ "webdav" ]] && { Err parazyd.org 70 i _zenques "Do you already have a WebDAV login?" Err parazyd.org 70 i- if [[ $? = 1 ]]; then Err parazyd.org 70 i+ [[ $? = 0 ]] || { Err parazyd.org 70 i davpass=$(_zenentry "WebDAV Password" \ Err parazyd.org 70 i "Insert the password you want to use for WebDAV login:" \ Err parazyd.org 70 i "my very strong password") Err parazyd.org 70 i- if [[ $? = 1 ]]; then; davpass=""; fi Err parazyd.org 70 i- fi Err parazyd.org 70 i- fi Err parazyd.org 70 i+ [[ $? = 0 ]] || davpass="" Err parazyd.org 70 i+ } Err parazyd.org 70 i+ } Err parazyd.org 70 i Err parazyd.org 70 i- if [[ $feats =~ "sshfs" ]]; then Err parazyd.org 70 i+ [[ $feats =~ "sshfs" ]] && { Err parazyd.org 70 i _zenques "Do you already have an SSH key setup for your user?" Err parazyd.org 70 i- if [[ $? = 1 ]]; then Err parazyd.org 70 i- sshpubkey=$(_fsel "Select your SSH pubkey you want to use.") Err parazyd.org 70 i- else Err parazyd.org 70 i- sshpubkey="" Err parazyd.org 70 i- fi Err parazyd.org 70 i- fi Err parazyd.org 70 i+ [[ $? = 0 ]] || sshpubkey=$(_fsel "Select your SSH pubkey you want to use.") Err parazyd.org 70 i+ } Err parazyd.org 70 i Err parazyd.org 70 i TOMBHOOKS=$(_zenques "Choose 'Yes' if you want to edit your tomb's bind-hooks and post-hooks") Err parazyd.org 70 i- if [[ $? = 0 ]]; then Err parazyd.org 70 i+ [[ $? = 0 ]] || { Err parazyd.org 70 i bindhook=$(zenity \ Err parazyd.org 70 i --window-icon="$MONMORT" \ Err parazyd.org 70 i --title="bind-hooks" \ Err parazyd.org 70 i --checkbox="Accept these bind-hooks" \ Err parazyd.org 70 i --text-info \ Err parazyd.org 70 i --editable) Err parazyd.org 70 i- if [[ $? = 1 ]]; then; exec _main; fi Err parazyd.org 70 i+ [[ $? = 0 ]] || exec _main Err parazyd.org 70 i Err parazyd.org 70 i posthook=$(zenity \ Err parazyd.org 70 i --window-icon="$MONMORT" \ Err parazyd.org 70 it@@ -365,10 +352,11 @@ function _create { Err parazyd.org 70 i --checkbox="Accept these post-hooks" \ Err parazyd.org 70 i --text-info \ Err parazyd.org 70 i --editable) Err parazyd.org 70 i- if [[ $? = 1 ]]; then; exec _main; fi Err parazyd.org 70 i- fi Err parazyd.org 70 i+ [[ $? = 0 ]] || exec _main Err parazyd.org 70 i+ } Err parazyd.org 70 i Err parazyd.org 70 i _zeninfo "gmakehook" "Plug in your USB key and click OK." Err parazyd.org 70 i+ sleep 1 Err parazyd.org 70 i lsblk -npl | awk -F" " '{print $1 " " $4}' | grep '^/dev/sd.. ' > ./.devs Err parazyd.org 70 i Err parazyd.org 70 i USBKEY=$(zenity \ Err parazyd.org 70 it@@ -380,40 +368,34 @@ function _create { Err parazyd.org 70 i --column="Device path" \ Err parazyd.org 70 i --column="Device size" \ Err parazyd.org 70 i $(cat ./.devs)) Err parazyd.org 70 i- if [[ $? = 1 ]]; then; exec _main; fi Err parazyd.org 70 i+ [[ $? = 0 ]] || exec _main Err parazyd.org 70 i Err parazyd.org 70 i _sudo Err parazyd.org 70 i _mountkey Err parazyd.org 70 i- if [[ -f $hooks ]]; then Err parazyd.org 70 i+ Err parazyd.org 70 i+ [[ -f $hooks ]] && { Err parazyd.org 70 i _zenques "Warning! There is already an existing hook. Do you want to overwrite?" Err parazyd.org 70 i- if [[ $? = 1 ]]; then Err parazyd.org 70 i- _zeninfo "gmakehook" "Postponing..." && _umountkey && exec _main Err parazyd.org 70 i- else Err parazyd.org 70 i- print "create:${UNDERTAKER}:${TOMBNAME}:${TOMBSIZE}:${feats}" | sudo tee $hooks Err parazyd.org 70 i- if [[ $feats =~ "webdav" ]]; then; _writedavinfo; fi Err parazyd.org 70 i- if [[ -n $sshpubkey ]]; then; sudo cp $sshpubkey ./sshpubkey ; fi Err parazyd.org 70 i- if [[ -n $bindhook ]]; then Err parazyd.org 70 i- print "$bindhook" | sudo tee $coffindot/bindhooks Err parazyd.org 70 i- fi Err parazyd.org 70 i- if [[ -n $posthook ]]; then Err parazyd.org 70 i- print "$posthook" | sudo tee $coffindot/posthooks Err parazyd.org 70 i- fi Err parazyd.org 70 i- _umountkey && _zeninfo "Success" "$hooks written successfully!\nPlug the USB key in a coffin to activate it." Err parazyd.org 70 i- exec _main Err parazyd.org 70 i- fi Err parazyd.org 70 i- else Err parazyd.org 70 i- print "create:${UNDERTAKER}:${TOMBNAME}:${TOMBSIZE}:${feats}" | sudo tee $hooks Err parazyd.org 70 i- if [[ $feats =~ "webdav" ]]; then; _writedavinfo; fi Err parazyd.org 70 i- if [[ -n $sshpubkey ]]; then; sudo cp $sshpubkey $coffindot/sshpubkey ; fi Err parazyd.org 70 i- if [[ -n $bindhook ]]; then Err parazyd.org 70 i- print "$bindhook" | sudo tee $coffindot/bindhooks Err parazyd.org 70 i- fi Err parazyd.org 70 i- if [[ -n $posthook ]]; then Err parazyd.org 70 i- print "$posthook" | sudo tee $coffindot/posthooks Err parazyd.org 70 i- fi Err parazyd.org 70 i- _umountkey && _zeninfo "Success" "$hooks written successfully!\nPlug the USB key in the coffin to activate it." Err parazyd.org 70 i- exec _main Err parazyd.org 70 i- fi Err parazyd.org 70 i+ [[ $? = 0 ]] || { Err parazyd.org 70 i+ _zeninfo "gmakehook" "Postponing..." && \ Err parazyd.org 70 i+ _umountkey && \ Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i+ } Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+ [[ $feats =~ "webdav" ]] && _writedavinfo Err parazyd.org 70 i+ [[ $? = 0 ]] && { _zenerr "Error" "Error writing WebDAV info." && exec _main } Err parazyd.org 70 i+ [[ -n $sshpubkey ]] && sudo cp $sshpubkey $coffindot/$tombid.pub Err parazyd.org 70 i+ [[ $? = 0 ]] && { _zenerr "Error" "Error writing SSH info." && exec _main } Err parazyd.org 70 i+ Err parazyd.org 70 i+ [[ -n $bindhook ]] && print "$bindhook" | sudo tee $coffindot/bindhooks Err parazyd.org 70 i+ [[ $? = 0 ]] && { _zenerr "Error" "Error writing bind-hook info." && exec _main } Err parazyd.org 70 i+ [[ -n $posthook ]] && print "$posthook" | sudo tee $coffindot/posthooks Err parazyd.org 70 i+ [[ $? = 0 ]] && { _zenerr "Error" "Error writing post-hook info." && exec _main } Err parazyd.org 70 i+ Err parazyd.org 70 i+ print "create:${UNDERTAKER}:${TOMBNAME}:${TOMBSIZE}:${feats}" | sudo tee $hooks Err parazyd.org 70 i+ Err parazyd.org 70 i+ _umountkey && _zeninfo "Success" "$hooks written successfully!\nPlug the USB key in the coffin to activate it." Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i } Err parazyd.org 70 i # }}} Err parazyd.org 70 i Err parazyd.org 70 it@@ -427,82 +409,23 @@ function _delete { Err parazyd.org 70 i --separator=":" \ Err parazyd.org 70 i --add-entry="coffin username" \ Err parazyd.org 70 i --add-entry="Tomb name") Err parazyd.org 70 i- if [[ $? = 1 ]]; then Err parazyd.org 70 i- exec _main Err parazyd.org 70 i- else Err parazyd.org 70 i- UNDERTAKER=${vars[(ws@:@)1]} Err parazyd.org 70 i- re='^[A-Za-z0-9]+$' Err parazyd.org 70 i- if ! [[ $UNDERTAKER =~ $re ]]; then Err parazyd.org 70 i- _zenwarn "Warning" "Invalid characters in username!" Err parazyd.org 70 i- exec _delete Err parazyd.org 70 i- fi Err parazyd.org 70 i- TOMBNAME=${vars[(ws@:@)2]} Err parazyd.org 70 i- if ! [[ $TOMBNAME =~ $re ]]; then Err parazyd.org 70 i- _zenwarn "Warning" "Invalid characters in tomb name!" Err parazyd.org 70 i- exec _delete Err parazyd.org 70 i- fi Err parazyd.org 70 i- fi Err parazyd.org 70 i- Err parazyd.org 70 i- _zeninfo "gmakehook" "Plug in your USB key and click OK." Err parazyd.org 70 i- lsblk -npl | awk -F" " '{print $1 " " $4}' | grep '^/dev/sd.. ' > ./.devs Err parazyd.org 70 i- Err parazyd.org 70 i- USBKEY=$(zenity \ Err parazyd.org 70 i- --window-icon="$MONMORT" \ Err parazyd.org 70 i- --title="Choose USB key" \ Err parazyd.org 70 i- --list \ Err parazyd.org 70 i- --text="Choose your USB key to use" \ Err parazyd.org 70 i- --separator=" " \ Err parazyd.org 70 i- --column="Device path" \ Err parazyd.org 70 i- --column="Device size" \ Err parazyd.org 70 i- $(cat ./.devs)) Err parazyd.org 70 i- if [[ $? = 1 ]]; then; exec _main; fi Err parazyd.org 70 i+ [[ $? = 0 ]] && exec _main Err parazyd.org 70 i Err parazyd.org 70 i- _sudo Err parazyd.org 70 i- _mountkey Err parazyd.org 70 i- if [[ -f $hooks ]]; then Err parazyd.org 70 i- _zenques "Warning! There is already an existing hook. Do you want to overwrite?" Err parazyd.org 70 i- if [[ $? = 1 ]]; then Err parazyd.org 70 i- _zeninfo "gmakehook" "Postponing..." && _umountkey && exec _main Err parazyd.org 70 i- else Err parazyd.org 70 i- print "delete:${UNDERTAKER}:${TOMBNAME}" | sudo tee $hooks Err parazyd.org 70 i- _umountkey && _zeninfo "Success" "$hooks written successfully!\nPlug the USB key in a coffin to activate it." Err parazyd.org 70 i- exec _main Err parazyd.org 70 i- fi Err parazyd.org 70 i- else Err parazyd.org 70 i- print "delete:${UNDERTAKER}:${TOMBNAME}" | sudo tee $hooks Err parazyd.org 70 i- _umountkey && _zeninfo "Success" "$hooks written successfully!\nPlug the USB key in the coffin to activate it." Err parazyd.org 70 i- exec _main Err parazyd.org 70 i- fi Err parazyd.org 70 i-} Err parazyd.org 70 i-# }}} Err parazyd.org 70 i+ UNDERTAKER=${vars[(ws@:@)1]} Err parazyd.org 70 i+ re='^[A-Za-z0-9]+$' Err parazyd.org 70 i+ [[ $UNDERTAKER =~ $re ]] || { Err parazyd.org 70 i+ _zenwarn "Warning" "Invalid characters in username!" Err parazyd.org 70 i+ exec _delete Err parazyd.org 70 i+ } Err parazyd.org 70 i Err parazyd.org 70 i-# {{{ _backup Err parazyd.org 70 i-function _backup { Err parazyd.org 70 i- vars=$(zenity \ Err parazyd.org 70 i- --window-icon="$MONMORT" \ Err parazyd.org 70 i- --title="Backup an existing tomb" \ Err parazyd.org 70 i- --forms \ Err parazyd.org 70 i- --text="Enter the info of your tomb" \ Err parazyd.org 70 i- --separator=":" \ Err parazyd.org 70 i- --add-entry="coffin username" \ Err parazyd.org 70 i- --add-entry="Tomb name") Err parazyd.org 70 i- if [[ $? = 1 ]]; then Err parazyd.org 70 i- exec _main Err parazyd.org 70 i- else Err parazyd.org 70 i- UNDERTAKER=${vars[(ws@:@)1]} Err parazyd.org 70 i- re='^[A-Za-z0-9]+$' Err parazyd.org 70 i- if ! [[ $UNDERTAKER =~ $re ]]; then Err parazyd.org 70 i- _zenwarn "Warning" "Invalid characters in username!" Err parazyd.org 70 i- exec _delete Err parazyd.org 70 i- fi Err parazyd.org 70 i- TOMBNAME=${vars[(ws@:@)2]} Err parazyd.org 70 i- if ! [[ $TOMBNAME =~ $re ]]; then Err parazyd.org 70 i- _zenwarn "Warning" "Invalid characters in tomb name!" Err parazyd.org 70 i- exec _delete Err parazyd.org 70 i- fi Err parazyd.org 70 i- fi Err parazyd.org 70 i+ TOMBNAME=${vars[(ws@:@)2]} Err parazyd.org 70 i+ [[ $TOMBNAME =~ $re ]] || { Err parazyd.org 70 i+ _zenwarn "Warning" "Invalid characters in tomb name!" Err parazyd.org 70 i+ exec _delete Err parazyd.org 70 i+ } Err parazyd.org 70 i Err parazyd.org 70 i _zeninfo "gmakehook" "Plug in your USB key and click OK." Err parazyd.org 70 i+ sleep 1 Err parazyd.org 70 i lsblk -npl | awk -F" " '{print $1 " " $4}' | grep '^/dev/sd.. ' > ./.devs Err parazyd.org 70 i Err parazyd.org 70 i USBKEY=$(zenity \ Err parazyd.org 70 it@@ -514,24 +437,19 @@ function _backup { Err parazyd.org 70 i --column="Device path" \ Err parazyd.org 70 i --column="Device size" \ Err parazyd.org 70 i $(cat ./.devs)) Err parazyd.org 70 i- if [[ $? = 1 ]]; then; exec _main; fi Err parazyd.org 70 i+ [[ $? = 0 ]] || exec _main Err parazyd.org 70 i Err parazyd.org 70 i _sudo Err parazyd.org 70 i _mountkey Err parazyd.org 70 i- if [[ -f $hooks ]]; then Err parazyd.org 70 i+ Err parazyd.org 70 i+ [[ -f $hooks ]] && { Err parazyd.org 70 i _zenques "Warning! There is already an existing hook. Do you want to overwrite?" Err parazyd.org 70 i- if [[ $? = 1 ]]; then Err parazyd.org 70 i- _zeninfo "gmakehook" "Postponing..." && _umountkey && exec _main Err parazyd.org 70 i- else Err parazyd.org 70 i- print "backup:${UNDERTAKER}:${TOMBNAME}" | sudo tee $hooks Err parazyd.org 70 i- _umountkey && _zeninfo "Success" "$hooks written successfully!\nPlug the USB key in a coffin to activate it." Err parazyd.org 70 i- exec _main Err parazyd.org 70 i- fi Err parazyd.org 70 i- else Err parazyd.org 70 i- print "backup:${UNDERTAKER}:${TOMBNAME}" | sudo tee $hooks Err parazyd.org 70 i- _umountkey && _zeninfo "Success" "$hooks written successfully!\nPlug the USB key in the coffin to activate it." Err parazyd.org 70 i- exec _main Err parazyd.org 70 i- fi Err parazyd.org 70 i+ [[ $? = 0 ]] && _zeninfo "gmakehook" "Postponing..." && _umountkey && exec _main Err parazyd.org 70 i+ } Err parazyd.org 70 i+ Err parazyd.org 70 i+ print "delete:${UNDERTAKER}:${TOMBNAME}" | sudo tee $hooks Err parazyd.org 70 i+ _umountkey && _zeninfo "Success" "$hooks written successfully!\nPlug the USB key in a coffin to activate it." Err parazyd.org 70 i+ exec _main Err parazyd.org 70 i } Err parazyd.org 70 i # }}} Err parazyd.org 70 i Err parazyd.org 70 .