URI: 
       tcomments caused bugs with ps - 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 e7bb890a5cc5252064ef39df8b6741ac5ac74abe
   DIR parent 5b697692f7d45173bb2a02b98ae3a7d2c072a3ef
  HTML Author: parazyd <parazyd@dyne.org>
       Date:   Sun, 13 Dec 2015 23:19:30 +0100
       
       comments caused bugs with ps
       
       Diffstat:
         M README.md                           |       1 +
         M gtomb                               |      90 ++++++++++++++++++-------------
       
       2 files changed, 53 insertions(+), 38 deletions(-)
       ---
   DIR diff --git a/README.md b/README.md
       t@@ -15,6 +15,7 @@ list and the script will run it for you. Easy-peasy.
        
        ## TODO
        * Error checking!
       +* Fix crashing on failing the sudo password
        * and more stuff 
        
        ## What you need to do
   DIR diff --git a/gtomb b/gtomb
       t@@ -18,6 +18,16 @@ function _ {
            _clean
        }
        
       +
       +function _sudo {
       +    sudoassword=$(ask_password "Insert sudo password for user $USER") 
       +    echo -e "$sudoassword\n" | sudo -S touch /tmp/sudochk
       +    if ![ -f /tmp/sudochk ]; then
       +        _sudo
       +    else
       +        sudo -v
       +    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@@ -189,7 +199,6 @@ function _clean {
                rr+="$RANDOM"
            done
        
       -    # Overwrite and unset vars.
            command="$rr";      unset command
            tombname="$rr";     unset tombname
            tombsize="$rr";     unset tombsize
       t@@ -199,7 +208,7 @@ function _clean {
            if [ -f $tombtmp ]
            then
                dd if=/dev/urandom of=$tombtmp bs=800 count=1
       -        rm -f $tombtmp # See for srm/wipe/etc.
       +        rm -f $tombtmp
            fi
            tombtmp="$rr";      unset tombtmp
            newkey="$rr";       unset newkey
       t@@ -240,7 +249,9 @@ function _main {
        
        # {{{ dig - Dig a new tomb
        function _dig {
       -    # Get new tomb's name and path.
       +
       +# Choose a tomb name, then type in the tomb's size in MiB and finally, dig the tomb.
       +
            tombname=`zenity \
                --title="Choose where to dig your tomb" \
                --window-icon="monmort.png" \
       t@@ -250,7 +261,6 @@ function _dig {
        
            res=$?
        
       -    # Check for existing tomb.
            if [[ -f $tombname ]]; then
                zenity \
                    --title="Error" \
       t@@ -258,7 +268,7 @@ function _dig {
                    --error \
                    --text="This tomb already exists. I'm not digging here."
                    exec _main
       -    # Check for empty path.
       +    d
            elif [[ $tombname == "" ]]; then
                zenity \
                    --title="Warning" \
       t@@ -270,17 +280,14 @@ function _dig {
        
            case $res in
                0)
       -            # Get tomb's size.
                    tombsize=`zenity \
                        --title="Tomb digging" \
                        --window-icon="monmort.png" \
                        --entry \
       -                --text="Enter the size of your tomb in MiB (min. 10 MiB):" \
       -                --entry-text=10`
       +                --text="Enter the size of your tomb in MiB (min. 10 MiB):"`
        
                    res=$?
        
       -            # See if it's an actual integer.
                    re='^[0-9]+$'
                    if ! [[ $tombsize =~ $re ]]; then
                        zenity \
       t@@ -288,19 +295,18 @@ function _dig {
                            --window-icon="monmort.png" \
                            --error \
                            --text="Please choose a valid number."
       +                exec _main
                    elif [[ $tombsize == "" ]]; then
                        zenity \
                            --title="Warning" \
                            --window-icon="monmort.png" \
                            --error \
                            --text="Try again."
       -
                        exec _main
                    fi
        
                    case $res in
                        0)
       -                    # Dig teh tomb.
                            $TOMBPATH dig -s $tombsize $tombname | \
                                zenity \
                                    --title="Digging new tomb" \
       t@@ -310,17 +316,11 @@ function _dig {
                                    --auto-close \
                                    --pulsate &
        
       -                    # Control Zenity and dd's PIDs to catch cancelling.
                            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 1 # Test different values here.
       +                        sleep 1
                            done
        
                            if [[ "$PID_DD" != "" && "$PID_ZEN" == "" ]]; then
       t@@ -332,11 +332,11 @@ function _dig {
                                    --text="Tomb digging canceled." \
                                    --warning
        
       -                        rm -f $tombname # Try srm/wipe here, but not actually necessary.
       +                        rm -f $tombname
                                exec _main
                            fi
        
       -                    _clean # Clean sensitive stuff from memory
       +                    _clean
        
                            zenity \
                                --title="Done digging" \
       t@@ -368,8 +368,9 @@ function _dig {
        # }}}
        
        # {{{ forge - Forge a new key
       +
       +# Select new key's path, forge the key and create its passphrase.
        function _forge {
       -    # Get keyfile's name and path.
            keyfile=`zenity \
                --title="Choose where to forge your key" \
                --window-icon="monmort.png" \
       t@@ -379,7 +380,6 @@ function _forge {
            
            res=$?
        
       -    # Check if keyfile exists.
            if [[ -f $keyfile ]]; then
                zenity \
                    --title="Error" \
       t@@ -398,7 +398,6 @@ function _forge {
        
            case $res in
                0)
       -            # Forge the keyfile.
                    $TOMBPATH forge $keyfile | \
                        zenity \
                            --title="Forging key" \
       t@@ -409,16 +408,12 @@ function _forge {
                            --auto-close \
                            --pulsate &
        
       -            # Track PIDs and catch cancellation.
                    PID_ZEN=$(ps -C zenity h -o pid,command | grep "Forging key" | 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 " if=" | awk '{print $1}')
       -                                                            # ^ also unsafe
       -                                                            # find out how to catch
       -                                                            # correct one
       -                sleep 1 # Test different values.
       +                sleep 1
                    done
        
                    if [[ "$PID_DD" != "" && "$PID_ZEN" == "" ]]; then
       t@@ -434,7 +429,7 @@ function _forge {
                        exec _main
                    fi
        
       -            _clean # Clean sensitive stuff from memory
       +            _clean
        
                    zenity \
                        --title="Done forging" \
       t@@ -457,15 +452,37 @@ function _lock {
                --title="Select tomb to lock" \
                --window-icon="monmort.png" \
                --file-selection`
       +
       +    res=$?
            
       -    case $? in
       +    if [[ $tombname == "" ]]; then
       +        zenity \
       +            --title="Warning" \
       +            --window-icon="monmort.png" \
       +            --warning \
       +            --text="Try again."
       +        exec _main
       +    fi
       +    
       +    case $res in
                0)
                    keyfile=`zenity \
                        --title="Choose the key for your tomb" \
                        --window-icon="monmort.png" \
                        --file-selection`
        
       -            case $? in
       +            res=$?
       +
       +            if [[ $keyfile == "" ]]; then
       +                zenity \
       +                    --title="Warning" \
       +                    --window-icon="monmort.png" \
       +                    --warning \
       +                    --text="Try again."
       +                exec _main
       +            fi
       +
       +            case $res in
                        0)  
                            sudoassword=$(ask_password "Insert sudo password for user $USER")
                            echo -e "$sudoassword\n" | sudo -S $TOMBPATH lock $tombname -k $keyfile | \
       t@@ -485,18 +502,15 @@ function _lock {
                                --info \
                                --text="Your tomb is now locked."
        
       -                    _main
       -                    eval "_$command"
       +                    exec _main
                            ;;
                        1)
       -                    _main
       -                    eval "_$command"
       +                    exec _main
                            ;;
                    esac
                    ;;
                1)
       -            _main
       -            eval "_$command"
       +            exec _main
                    ;;
            esac
        }
       t@@ -807,7 +821,7 @@ function setkey {
        }
        # }}}
        
       -# {{{ engrave - generate QR code of a key FIX
       +# {{{ engrave - generate QR code of a key
        function _engrave {
            keyfile=`zenity \
                --title="Choose keyfile to engrave" \