URI:
       tfixed cancelling a tomb being dug - gtomb - tomb gtk frontend in zenity
  HTML git clone git://parazyd.org/gtomb.git
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit f36a1e450270a16bbd75734d2b99060a24986ab4
   DIR parent f090596346956f60fe7489079b2ba48d8da9b94b
  HTML Author: parazyd <parazyd@dyne.org>
       Date:   Sun, 13 Dec 2015 20:44:45 +0100
       
       fixed cancelling a tomb being dug
       
       Diffstat:
         M README.md                           |       4 +---
         M gtomb                               |      89 ++++++++++++++++++++++++-------
       
       2 files changed, 72 insertions(+), 21 deletions(-)
       ---
   DIR diff --git a/README.md b/README.md
       t@@ -1,8 +1,6 @@
        # gtomb
        A GUI for Tomb (https://www.dyne.org/software/tomb/)
        
       -## Under development. Still not ready for production use.
       -
        `gtomb` is a wrapper for another wrapper called [Tomb](https://github.com/dyne/Tomb)  
        It is imagined to make usage of Tomb even easier for end-users.
        
       t@@ -12,7 +10,7 @@ The UI consists of all commands included in Tomb. You can choose a command you w
        list and the script will run it for you. Easy-peasy.
        
        ## Dependencies
       -* tomb
       +* tomb (also get tomb's dependencies)
        * zenity
        
        ## TODO
   DIR diff --git a/gtomb b/gtomb
       t@@ -10,8 +10,7 @@
        # intended and should be used with caution.
        #
        
       -ver=0.4
       -
       +ver="0.5.1"
        TOMBPATH="/usr/local/bin/tomb" # Set this to your tomb executable's path
        
        function _ {
       t@@ -230,6 +229,8 @@ function _main {
                "engrave" "Generates a QR code of a key to be saved on paper" \
                "bury" "Hide a key inside a JPEG image" \
                "exhume" "Extract a key from a JPEG image"`
       +
       +    eval "_$command"
        }
        # }}}
        
       t@@ -314,23 +315,19 @@ function _create {
                                        --text="Tomb locked!"
        
                                    _main
       -                            eval "_$command"
                                    ;;
                                1)
                                    _main
       -                            eval "_$command"
                                    ;;
                            esac
                            ;;
                        1)
       -                   _main
       -                   eval "_$command"
       +                   exec _main
                           ;; 
                    esac
                    ;;
                1)
       -            _main
       -            eval "_$command"
       +            exec _main
                    ;;
            esac
        }
       t@@ -345,13 +342,22 @@ function _dig {
                --filename="secret.tomb" \
                --save`
        
       +    if [[ -f $tombname ]]; then
       +        zenity \
       +            --title="Error!" \
       +            --window-icon="monmort.png" \
       +            --error \
       +            --text="This tomb already exists. I'm not digging here."
       +            exec _main
       +    fi
       +
            case $? in
                0)
                    tombsize=`zenity \
                        --title="Tomb digging" \
                        --window-icon="monmort.png" \
                        --entry \
       -                --text="A tomb must be min. 10MiB in size" \
       +                --text="Enter the size of your tomb in MiB (min. 10 MiB):" \
                        --entry-text=10`
        
                    case $? in
       t@@ -363,7 +369,35 @@ function _dig {
                                    --text="Please wait while your tomb is being dug." \
                                    --progress \
                                    --auto-close \
       -                            --pulsate
       +                            --pulsate &
       +
       +                    PID_ZEN=$(ps -C zenity h -o pid,command | grep "Digging new tomb" | awk '{print $1}')
       +
       +                    while [ "$PID_ZEN" != "" ]; do
       +                        PID_ZEN=$(ps h -o pid -p ${PID_ZEN})
       +                        PID_DD=$(ps -C dd h -o pid,command | grep "$tombname" | awk '{print $1}')
       +
       +                        #PID_DD=$(ps -C dd h -o pid,command | grep " of=" | awk '{print $1}')
       +                                                            # ^ unsafe for other dds
       +                                                            # doesn't work when using
       +                                                            # a var like $tombname
       +                                                            # sometimes
       +                        sleep 2 # test out
       +                    done
       +
       +                    if [[ "$PID_DD" != "" && "$PID_ZEN" == "" ]]; then
       +
       +                        kill -9 $PID_DD
       +
       +                        zenity \
       +                            --title="Canceled!" \
       +                            --window-icon="monmort.png" \
       +                            --text="Tomb digging canceled." \
       +                            --warning
       +
       +                        rm -f $tombname # try srm/wipe
       +                        exec _main
       +                    fi
        
                            _clean # Clean sensitive stuff from memory
        
       t@@ -373,18 +407,24 @@ function _dig {
                                --info \
                                --text="Your tomb has been dug."
        
       -                    _main
       -                    eval "_$command"
       +                    exec _main
                            ;;
                        1)
       -                    _main
       -                    eval "_$command"
       +                    zenity \
       +                        --title="Canceled" \
       +                        --window-icon="monmort.png" \
       +                        --info \
       +                        --text="Tomb digging canceled."
       +
       +                    exec _main
       +                    ;;
       +                1)
       +                    exec _main
                            ;;
                    esac
                    ;;
                1)
       -            _main
       -            eval "_$command"
       +            exec _main
                    ;;
            esac
        }
       t@@ -405,11 +445,25 @@ function _forge {
                        zenity \
                            --title="Forging key" \
                            --window-icon="monmort.png" \
       -                    --text="Please wait while your key is being forged." \
       +                    --text="Please wait while your key is being forged.\n\
       +                    You can move your mouse around and use your computer to speed up the process." \
                            --progress \
                            --auto-close \
                            --pulsate
        
       +            if [[ $? == 1 ]]; then
       +                killall dd # possibly unsafe
       +
       +                zenity \
       +                    --title="Canceled!" \
       +                    --window-icon="monmort.png" \
       +                    --text="Forging canceled." \
       +                    --warning
       +
       +                rm -f $keyfile
       +                exec _main
       +            fi
       +
                    _clean # Clean sensitive stuff from memory
        
                    zenity \
       t@@ -915,4 +969,3 @@ function exhume {
        # }}}
        
        _main
       -eval "_$command"