jaromail

a commandline tool to easily and privately handle your e-mail
git clone git://parazyd.org/jaromail.git
Log | Files | Refs | Submodules | README

commit 076f5b210d6cff88f6317ac7e2ddbf8e394752dc
parent ff7df807bdeb316cfece82c1231c3f4adea44b7b
Author: Jaromil <jaromil@dyne.org>
Date:   Tue,  5 Jun 2012 22:35:50 +0200

simple jaro edit command and cleanups

Diffstat:
Mbuild/build-gnu.sh | 1-
Msrc/jaro | 62++++++++++++++++++++++++++++++++++++++++++++------------------
2 files changed, 44 insertions(+), 19 deletions(-)

diff --git a/build/build-gnu.sh b/build/build-gnu.sh @@ -46,7 +46,6 @@ case $distro in *) echo "Error: no distro recognized, build by hand." - return 1 ;; esac diff --git a/src/jaro b/src/jaro @@ -120,7 +120,7 @@ case $OS in GNU) touch /dev/shm/jaromail.test.tmp > /dev/null { test $? = 0 } && { - # we can use volatile ram + # we can use volatile ram rm -f /dev/shm/jaromail.test.tmp TMPDIR=/dev/shm/jaromail.$USER TMPRAM=1 @@ -135,7 +135,7 @@ case $OS in } ;; esac - + { test $TMPRAM = 1 } && { act "Using temporary directory in volatile RAM" } @@ -157,7 +157,7 @@ MUTTDIR=$WORKDIR/.mutt # use gnome-keyring for passwords on GNU systems GNOMEKEY=0 ps ax | grep '[g]nome-keyring-daemon' > /dev/null -{ test $? = 0 } && { +{ test $? = 0 } && { which jaro-gnome-keyring > /dev/null { test $? = 0 } && { GNOMEKEY=1 } } @@ -251,7 +251,7 @@ check_bin() { # which wipe command to use which wipe > /dev/null - { test $? = 0 } && { + { test $? = 0 } && { rm="wipe -f -s -q -R /dev/urandom"; return 0 } which srm > /dev/null { test $? = 0 } && { @@ -344,9 +344,9 @@ new_password() { GNU) if [ "$password" != "" ]; then # password was written - # USE GNOME KEYRING + # USE GNOME KEYRING { test $GNOMEKEY = 1 } && { - + cat <<EOF | $WORKDIR/bin/jaro-gnome-keyring store protocol=${type} path=jaromail/${email} @@ -360,14 +360,14 @@ EOF return 1 } return 0 } - + return 0 else # password is blank or aborted - # USE GNOME KEYRING + # USE GNOME KEYRING { test $GNOMEKEY = 1 } && { - + cat <<EOF | $WORKDIR/bin/jaro-gnome-keyring erase protocol=${type} path=jaromail/${email} @@ -383,7 +383,7 @@ EOF return 1 - fi + fi ;; *) error "Unknown system, can't figure out how to handle passwords" @@ -958,7 +958,7 @@ set tmpdir = $WORKDIR/cache set sendmail = "$WORKDIR/bin/jaro queue" set header_cache= $WORKDIR/cache set maildir_header_cache_verify=no -set editor = "$EDITOR" +set editor = "$WORKDIR/bin/jaro edit" set mailcap_path = "$WORKDIR/.mutt/mailcap:$WORKDIR/mailcap:$HOME/.mailcap:/etc/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap" # Little Brother Database @@ -1166,7 +1166,7 @@ CREATE TABLE blacklist ); EOF { $? != 0 } && { - error "Error creating addressbook database." + error "Error creating addressbook database." return 1 } return 0 } @@ -1202,11 +1202,11 @@ SELECT rowid FROM $list WHERE email IS "${1}"; EOF return $? -} +} address() { { test ! -r ${WORKDIR}/addressbook } && { create_addressbook } act "Searching for \"${PARAM[1]}\" in $list" - { test "$OS" = "MAC" } && { + { test "$OS" = "MAC" } && { matches=`$WORKDIR/bin/ABQuery ${PARAM[1]}` } matches="${matches}\n`search_name ${PARAM[1]}`" @@ -1274,6 +1274,28 @@ EOF ################### + +######### +## Editor +# this part guesses what is the best editor already present on the system +# of course we have a preference for AutOrg, the editor from our suite +# however the default is nano if nothing else is choosen. +editor() { + { test ${EDITOR} } && { + ${EDITOR} ${PARAM[1]} + return $? } + case $OS in + MAC) open -t ${PARAM[1]} ;; + GNU) + { which nano > /dev/null } && { + nano -m -S -Q ">" -I -E -D -T 4 -U -W -c -i -k -r 72 ${PARAM[1]} } + error "No editor found, please configure the EDITOR environment variable." + sleep 3 + ;; + esac + return $? +} + ###################### # Maildir manipulation backup() { @@ -1386,7 +1408,7 @@ filter() { echo "${briefing}" } -# opens and closes a ramdisk for temporary files +# opens and closes a ramdisk for temporary files # users can do this explicitly between session to speed up operations ramdisk() { case $OS in @@ -1413,7 +1435,7 @@ ramdisk() { notice "Operation successful, ramdisk ready on /Volume/JaroTmp" TMPRAM=1 ;; - close) + close) devname=`mount | awk '/JaroTmp/ {print $1}'` { test "$devname" = "" } && { error "No ramdisk seems to be open" @@ -1507,6 +1529,8 @@ main() subcommands_opts[forget]="" subcommands_opts[list]="" + subcommands_opts[edit]="" + subcommands_opts[backup]="" subcommands_opts[rmdupes]="" subcommands_opts[merge]="" @@ -1604,7 +1628,7 @@ main() fetch) fetch ${PARAM} ;; send) send ${PARAM} ;; peek) peek ${PARAM} ;; - + update) update ;; stats) CLEANEXIT=0; stats ;; @@ -1614,6 +1638,8 @@ main() forget) CLEANEXIT=0; forget ${PARAM} ;; list) CLEANEXIT=0; list_addresses ${PARAM} ;; + edit) CLEANEXIT=0; editor ${PARAM} ;; + backup) backup ${PARAM} ;; rmdupes) rmdupes ${PARAM} ;; merge) merge ${PARAM} ;; @@ -1627,7 +1653,7 @@ main() ramdisk) ramdisk ${PARAM} ;; 'source') CLEANEXIT=0; return 0 ;; - __default) func "no command provided" + __default) func "no command provided" autostart ${PARAM} exitcode=$? ;;