URI:
       ttomb deletion function - coffin - secure lan file storage on a device
  HTML git clone git://parazyd.org/coffin.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit f7a9f52b2508eff9381a644bb13e87f9ed7b6f9c
   DIR parent cc17987e9314c3d746a5ea585f46c766e3a2a8d6
  HTML Author: parazyd <parazyd@dyne.org>
       Date:   Mon, 28 Mar 2016 15:33:39 +0200
       
       ttomb deletion function
       
       Diffstat:
         M .gitignore                          |       1 +
         M src/sacrist                         |      10 ++++++----
         M src/zlibs/features                  |      27 ++++++++++++++++++++-------
         M src/zlibs/hooks                     |      46 +++++++++++++++++++++++++++++--
       
       4 files changed, 70 insertions(+), 14 deletions(-)
       ---
   DIR diff --git a/.gitignore b/.gitignore
       t@@ -1 +1,2 @@
        NOTES.md
       +.*.swp
   DIR diff --git a/src/sacrist b/src/sacrist
       t@@ -7,7 +7,7 @@
        coffin_version=0.2
        coffin_release_date="Mar/2016"
        
       -DEBUG=${DEBUG:-1}
       +DEBUG=${DEBUG:-1} # NOTE: Change default value to 0 later
        QUIET=${QUIET:-0}
        LOG=${LOG:-""}
        
       t@@ -32,9 +32,9 @@ source $R/zlibs/keyfiles
        source $R/zlibs/mounts
        source $R/zlibs/ttab
        
       -LOCK=$R/lock # TODO: implement lock
       +LOCK=$R/.lock
        [[ -f $LOCK ]] && { warn "Lock found. Wait until finished." && exit }
       -#touch $LOCK
       +touch $LOCK
        
        device=$1 && xxx "Device: $device"
        happenz=$2 && xxx "Happenz: $happenz"
       t@@ -54,7 +54,7 @@ TOMBPASSWD="${TOMBPASSWD:-$GRAVEYARD/passwd}"
        req=(happenz device)
        #ckreq || {
        #        die "Not called through mourner. Exiting..."
       -#        # clean
       +#        clean
        #        exit
        #}
        
       t@@ -76,10 +76,12 @@ act "Version: $coffin_version, $coffin_release_date"
                fi
        
                umount-key $device
       +        rm $LOCK
                # cleanup & exit
        }
        
        [[ $happenz == "DELETE" ]] && {
                # TODO: Some kind of endgame
       +        rm $LOCK
        }
        
   DIR diff --git a/src/zlibs/features b/src/zlibs/features
       t@@ -1,7 +1,7 @@
        #!/usr/bin/env zsh
        
       -check-webdav-hook() {
       -        fn check-webdav-hook
       +create-webdav-hook() {
       +        fn create-webdav-hook
        
                davconf="/etc/apache2/sites-available/coffindav.conf"
        
       t@@ -19,7 +19,7 @@ check-webdav-hook() {
                        sed -i -e :a -e '$d;N;2,3ba' -e 'P;D' $davconf
                        cat $COFFINDOT/webdav.conf >> $davconf
                        act "Wrote to $davconf"
       -                /etc/init.d/apache2 restart
       +                /etc/init.d/apache2 reload
                        [[ $? = 0 ]] || warn "Apache is funky"
                        rm $COFFINDOT/webdav.conf
                        act "Done setting up WebDAV"
       t@@ -29,11 +29,22 @@ check-webdav-hook() {
                fi
        }
        
       -delete-webdav-hook() { }
       +delete-webdav-hook() { 
       +        fn delete-webdav-hook $*
       +        req=(tombid)
       +        tombid="$1"
       +        ckreq || return 1
        
       +        davconf="/etc/apache2/sites-available/coffindav.conf"
        
       -check-sshfs-hook() {
       -        fn check-sshfs-hook
       +        sed -i '/alias\ \/${tombid}/,+10 d' $davconf
       +        /etc/init.d/apache2 reload
       +        [[ $? = 0 ]] || warn "Apache is funky"
       +        act "Deleted WebDAV data"
       +}
       +
       +create-sshfs-hook() {
       +        fn create-sshfs-hook
        
                if [[ $entry =~ sshfs && -f $COFFINDOT/sshpubkey ]]; then
                        act "Found SSH data. Setting up..."
       t@@ -46,7 +57,7 @@ check-sshfs-hook() {
                        [[ $? = 0 ]] && act "Wrote to authorized_keys" \
                                && act "Done setting up SSH"
        
       -                # TODO: remove SSH key from usb
       +                # NOTE: maybe remove SSH key from usb, consider deletion
                else
                        act "No SSH data found"
                fi
       t@@ -64,4 +75,6 @@ delete-sshfs-hook() {
        
                grep -v $tombid $authkeys > $tempkeys
                mv $tempkeys $authkeys
       +
       +        act "Deleted SSH data"
        }
   DIR diff --git a/src/zlibs/hooks b/src/zlibs/hooks
       t@@ -23,7 +23,6 @@ check-hooks() {
                                return 1
                        fi
                done
       -
                rm $HOOKS
        }
        
       t@@ -78,6 +77,47 @@ create-new-tomb() {
                act "Wrote to ttab and tombpasswd"
        
                # Check for features
       -        check-webdav-hook
       -        check-sshfs-hook
       +        create-webdav-hook
       +        create-sshfs-hook
       +}
       +
       +delete-tomb() {
       +        fn delete-tomb
       +
       +        act "Deleting tomb"
       +
       +        undertaker=${entry[(ws@:@)2]} && xxx "Undertaker: $undertaker"
       +        tombid=${entry[(ws@:@)2]} && xxx "Tombid: $tombid"
       +
       +        [[ $(id $undertaker &>/dev/null) ]] || {
       +                die "User $undertaker not found. Exiting..."        
       +                return 1
       +        }
       +
       +        [[ -f $GRAVEYARD/$tombid.tomb ]] || {
       +                die "Tomb $tombid.tomb not found. Exiting..."        
       +                return 1
       +        }
       +
       +        [[ -f $COFFINDOT/$tombid.key ]] || {
       +                die "Key of $tombid not found. Exiting..."        
       +                return 1
       +        }
       +
       +        compare-key
       +        [[ $? = 0 ]] && {
       +                sudo -u $undertaker $TOMB slam $tombid
       +                
       +                grep -v ${undertaker}:${tombid} $TTAB > $TTAB.tmp
       +                [[ $? = 0 ]] && mv $TTAB.tmp $TTAB && \
       +                        act "Removed from ttab"
       +
       +                grep -v ${keyhash} $TOMBPASSWD > $TOMBPASSWD.tmp
       +                [[ $? = 0 ]] && mv $TOMBPASSWD.tmp $TOMBPASSWD && \
       +                        act "Removed from tombpasswd"
       +
       +                # Check for features
       +                delete-webdav-hook $tombid
       +                delete-sshfs-hook $undertaker $tombid
       +        }
        }