From 188134c9c5e7e3557bb4f1ce5dc77e77b9947749 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Thu, 18 Sep 2008 15:38:27 +0200 Subject: Added put function --- etc/function | 2 ++ etc/functions/fdie | 2 ++ etc/functions/put | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 etc/functions/fdie create mode 100644 etc/functions/put (limited to 'etc') diff --git a/etc/function b/etc/function index 8fc9d2c..2bdbb97 100644 --- a/etc/function +++ b/etc/function @@ -1,7 +1,9 @@ +## vim:ft=zsh autoload chpwd extr plonkhost world-readable youtube-watch autoload reload autoload rtab autoload xexport xsource +autoload put autoload throw catch diff --git a/etc/functions/fdie b/etc/functions/fdie new file mode 100644 index 0000000..10c4ed5 --- /dev/null +++ b/etc/functions/fdie @@ -0,0 +1,2 @@ +echo -e "${fail}${*}${reset}" +return 1 diff --git a/etc/functions/put b/etc/functions/put new file mode 100644 index 0000000..70a3ec9 --- /dev/null +++ b/etc/functions/put @@ -0,0 +1,42 @@ +## vim:ft=zsh + +autoload fdie +typeset hostname +typeset -a ssh_options hosts +typeset target_dir server_prefix +typeset file + +function put_aneurysm () { + hostname='derf.homelinux.org' + ssh_options=(-q) + target_dir='public_html/tmp/' + server_prefix='https://derf.homelinux.org/~derf/tmp/' +} + +function put_sievert () { + hostname='sievert.tabularazor.org' + ssh_options=(-q) + target_dir='www/tmp/' + server_prefix='https://tabularazor.org/~derf/tmp/' +} + +hosts=(aneurysm sievert) + +if [[ -f $1 ]] { + file=${1:t} + while (( $#hosts )) { + put_$hosts[1] + ping -c 1 $hostname &> /dev/null + if (( ? == 0 )) { + scp $ssh_options $file $hostname:$target_dir + ssh $ssh_options $hostname "chmod 644 $target_dir$file" + echo $server_prefix$file + return 0 + } else { + shift hosts + } + } + fdie "No hosts reachable" +} else { + fdie "$1: No such file" +} -- cgit v1.2.3