tmoar small fixes - coffin - secure lan file storage on a device
git clone git://parazyd.org/coffin.git
Log
Files
Refs
Submodules
README
LICENSE
---
commit 1806989bd2345e4b85ce7cfa552ee0eb9fc4e0a6
parent 1e8db60c4b19043be11e3eadc62bb75520e118f1
Author: parazyd 
Date:   Tue, 29 Mar 2016 17:55:32 +0200

moar small fixes

Diffstat:
  M helpers/gmakehook                   |     322 ++++++++++++-------------------

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