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 bd25a12d126f38d82fe9b7d4ba6882da65edbe32
parent a4c584412c9dc16732c2201b3b2aeca88225c05f
Author: Jaromil <jaromil@dyne.org>
Date:   Tue, 18 Sep 2012 15:38:02 -0500

check if online for commands needing the network. adds --force to avoid check

Diffstat:
Msrc/jaro | 15+++++++--------
Msrc/zlibs/helpers | 15+++++++++++++++
2 files changed, 22 insertions(+), 8 deletions(-)

diff --git a/src/jaro b/src/jaro @@ -400,7 +400,7 @@ main() # I. usability; user expect that "-s" is "size # II. Option parsing WILL EXPLODE if you do this kind of bad things # (it will say "option defined more than once, and he's right) - main_opts=(a: -account=a l: -list=l q -quiet=q D -debug=D h -help=h v -version=v n -dry-run=n) + main_opts=(a: -account=a l: -list=l q -quiet=q D -debug=D h -help=h v -version=v n -dry-run=n f -force=f) subcommands_opts[__default]="R -readonly=R" subcommands_opts[compose]="" subcommands_opts[queue]="" @@ -442,8 +442,6 @@ main() subcommands_opts[ramdisk]="" subcommands_opts[source]="" -# subcommands_opts[mount]=${subcommands_opts[open]} -# subcommands_opts[create]="s: -size=s -ignore-swap k: -key=k" ### Detect subcommand local -aU every_opts #every_opts behave like a set; that is, an array with unique elements for optspec in $subcommands_opts$main_opts; do @@ -527,13 +525,14 @@ main() { option_is_set -n } && { DRYRUN=1 act "Dry run, show operations without executing them." } { option_is_set -R } && { muttflags+=" -R " } + { option_is_set -f } && { FORCE=1 } case "$subcommand" in compose) compose ${PARAM} ;; queue) queue ${PARAM} ;; - fetch) fetch ${PARAM} ;; - send) send ${PARAM} ;; - peek) peek ${PARAM} ;; + fetch) is_online; fetch ${PARAM} ;; + send) is_online; send ${PARAM} ;; + peek) is_online; peek ${PARAM} ;; later) later ${PARAM} ;; @@ -564,7 +563,7 @@ main() passwd) change_password ${PARAM} ;; - cert) cert ${PARAM} ;; + cert) is_online; cert ${PARAM} ;; ramdisk) ramdisk ${PARAM} ;; @@ -589,5 +588,5 @@ main() check_bin main $@ -if [ $CLEANEXIT = 1 ]; then cleanexit; fi +{ test "$CLEANEXIT" = "1" } && { cleanexit } return $exitcode diff --git a/src/zlibs/helpers b/src/zlibs/helpers @@ -136,6 +136,21 @@ open_file() { } +######################### +## check if we are online +is_online() { + ping -c3 -n 8.8.8.8 2>/dev/null + { test $? = 0 } || { + error "Internet seems unreachable" + { test "$FORCE" = "1" } || { + act "Network connection is checked with a ping to 8.8.8.8" + act "if your network doesn't allows it to pass, use -f to force." + error "Operation aborted." + exit 1 } + } +} + + # opens and closes a ramdisk for temporary files # users can do this explicitly between session to speed up operations ramdisk() {