cmd = $e:arc~ edit:add-var archiver~ [@argv]{ use str help = { echo "Usage : archiver [(-zlxgb)] " return } if (or (== (count $argv) 0) (eq $argv[0] -h)) { $help } var format o = zst $argv[0] if (and (str:has-prefix $o -) (> (count $o) 1)) { o = $o[1] var m = [ &z=zst &l=lz4 &x=xz &g=gz &b=bz2 ] if (not (has-key $m $o)) { $help } format argv = $m[$o] $argv[1..] } if (== (count $argv) 0) { $help } peach [f]{ var f = $f if (eq $f[-1] /) { f = $f[..-1] } $cmd archive $f'.tar.'$format $f echo "'"$f"'" archivé } $argv } edit:add-var desarchiver~ [@argv]{ peach [f]{ var f = $f $cmd unarchive $f echo "'"$f"'" désarchivé } $argv } edit:add-var listarchiver~ [@argv]{ peach [f]{ local f = $f $cmd ls $f } $argv }