From: Sergey Matveev Date: Tue, 15 Feb 2022 08:34:21 +0000 (+0300) Subject: Pure zsh client X-Git-Tag: v2.0.0~5 X-Git-Url: http://www.git.stargrave.org/?p=paster.git;a=commitdiff_plain;h=1e900b5fa14b0b3124ba671a7811e6b31c194e0f Pure zsh client --- diff --git a/contrib/paster.zsh b/contrib/paster.zsh new file mode 100755 index 0000000..a4850d5 --- /dev/null +++ b/contrib/paster.zsh @@ -0,0 +1,25 @@ +#!/usr/bin/env zsh + +set -e + +DST=${DST:-paster.example.com 2020} +[[ -s "$1" ]] && { + src="$1" + bn=$src:t + e=${bn##*.} + [[ $bn = $e ]] || ext="1:e${#e}:$e" +} || { + src=`mktemp` + trap "rm -f $src" HUP PIPE INT QUIT TERM EXIT + cat > $src + [[ $# -eq 0 ]] || ext="1:e${#1}:$1" +} +zmodload -F zsh/stat b:zstat +size=`zstat +size $src` + +zmodload zsh/net/tcp +ztcp ${=DST} +fd=$REPLY +( print -n "d${ext}1:v${size}:" ; cat $src ; print -n e ) >&$fd +cat <&$fd +ztcp -c $fd