tobscure zsh builtins - 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 27f1af84b6f04cf5686dcdef46dca46a4f796810 DIR parent 7689b3271deae39655d3114d5264c47adb23bf1a HTML Author: parazyd <parazyd@dyne.org> Date: Wed, 2 Mar 2016 15:11:53 +0100 obscure zsh builtins Diffstat: M bin/sacrist | 54 +++++++++++++++++-------------- 1 file changed, 30 insertions(+), 24 deletions(-) --- DIR diff --git a/bin/sacrist b/bin/sacrist t@@ -8,6 +8,10 @@ device=$1 happenz=$2 keyuuid=$(blkid $device | awk -F\" '{print $2}') + +typeset -H keypass +typeset -H undertaker + # Vars graveyard="/home/graveyard" # Our graveyard, with all the tombs tombs="$graveyard/tombs" # Info about opened tombs, holds keyuuid, keyhash and tombid t@@ -23,10 +27,10 @@ tombpasswd="$graveyard/passwd" # create:username:tombname:tombsize:passphrase # Debugs -echo "Arg1: $1" -echo "Arg2: $2" -echo "Device path is: $device" -echo "Device UUID is: $keyuuid" +print "Arg1: $1" +print "Arg2: $2" +print "Device path is: $device" +print "Device UUID is: $keyuuid" # {{{ Functions _mountkey() { t@@ -43,12 +47,12 @@ _ttabmagic() { let line=$line+1 _msg info "Found line $line..." - if [[ $(echo $entry | awk -F: '{print $3}') == "true" ]]; then + if [[ ${entry[(ws@:@)3]} == "true" ]]; then _msg info "Working on tomb from line $line..." - undertaker=$(echo $entry | awk -F: '{print $1}') - echo "Username: $undertaker" - tombid=$(echo $entry | awk -F: '{print $2}') - echo "Tomb name: $tombid.tomb" + undertaker=${entry[(ws@:@)1]} + print "Username: $undertaker" + tombid=${entry[(ws@:@)2]} + print "Tomb name: $tombid.tomb" _comparekey if [[ $happenz == "close" ]]; then t@@ -62,12 +66,12 @@ _ttabmagic() { _msg warn "Comparekey false" keypass=$(cat $tombpasswd | grep $keyhash | awk -F: '{print $2}') - echo "Tomb passphrase: $keypass" + print "Tomb passphrase: $keypass" sudo -u $undertaker $tomb open $graveyard/$tombid.tomb -k $coffindot/$tombid.key \ - --unsafe --tomb-pwd "$keypass" # Deal with this shit somehow! + --unsafe --tomb-pwd "$keypass" # Deal with this if [[ -d "/media/$tombid" ]]; then - echo "$undertaker:$keyhash:$keyuuid" >> $tombs && chmod 600 $tombs && _msg info "Added info to $tombs" + print "$undertaker:$keyhash:$keyuuid" >> $tombs && chmod 600 $tombs && _msg info "Added info to $tombs" else _msg warn "Nothing added to $tombs" fi t@@ -96,11 +100,11 @@ _hooks() { _msg info "Found hook $hook..." # Check what's hook supposed to do - if [[ $(echo $entry | awk -F: '{print $1}') == "create" ]]; then + if [[ ${entry[(ws@:@)1]} == "create" ]]; then _create_new_tomb - elif [[ $(echo $entry | awk -F: '{print $1}') == "delete" ]]; then + elif [[ ${entry[(ws@:@)1]} == "delete" ]]; then #DELETE TOMB - elif [[ $(echo $entry | awk -F: '{print $1}') == "foo" ]]; then + elif [[ ${entry[(ws@:@)1]} == "foo" ]]; then # do foo else _msg error "No valid hook syntax on hook $hook" t@@ -111,15 +115,17 @@ _hooks() { _create_new_tomb() { _msg info "Creating new tomb!" - undertaker=$(echo $entry | awk -F: '{print $2}') - tombid=$(echo $entry | awk -F: '{print $3}') - tombsize=$(echo $entry| awk -F: '{print $4}') - keypass=$(echo $entry | awk -F: '{print $5}') + undertaker=${entry[(ws@:@)2]} + tombid=${entry[(ws@:@)3]} + tombsize=${entry[(ws@:@)4]} + keypass=${entry[(ws@:@)5]} if ! [[ ( $(id $undertaker) ) ]]; then _msg warn "No user called $undertaker found. Creating..." useradd -G tombox -m -s /bin/bash $undertaker _msg info "Created user $undertaker" + else + _msg warn "User $undertaker exists. Continuing..." fi sudo -u $undertaker $tomb dig -s $tombsize $graveyard/$tombid.tomb t@@ -129,9 +135,9 @@ _create_new_tomb() { mv $graveyard/$tombid.key $coffindot/ && chown $undertaker:$undertaker $coffindot/$tombid.key && \ _msg info "Moved and chowned keyfile" - echo "$undertaker:${tombid}:true" >> $ttab + print "$undertaker:${tombid}:true" >> $ttab keyhash=$(_hashkey) - echo "${keyhash}:${keypass}" >> $tombpasswd + print "${keyhash}:${keypass}" >> $tombpasswd _msg info "Wrote to $ttab and $tombpasswd" # rm $createme && _msg info "Removed $createme" } t@@ -142,11 +148,11 @@ _endgame() { _msg() { if [[ $1 == "error" ]]; then - echo -e "\e[1;31m[E] \e[0;31m$2 \e[0m" + print "\e[1;31m[E] \e[0;31m$2 \e[0m" elif [[ $1 == "warn" ]]; then - echo -e "\e[1;33m[W] \e[0;33m$2 \e[0m" + print "\e[1;33m[W] \e[0;33m$2 \e[0m" elif [[ $1 == "info" ]]; then - echo -e "\e[1;34m[i] \e[0;34m$2 \e[0m" + print "\e[1;34m[i] \e[0;34m$2 \e[0m" fi } # }}}