var cmd = $e:arc~ edit:add-var archiver~ {|@argv| use str var 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)) { set o = $o[1] var m = [ &z=zst &l=lz4 &x=xz &g=gz &b=bz2 ] if (not (has-key $m $o)) { $help } set format argv = $m[$o] $argv[1..] } if (== (count $argv) 0) { $help } peach &num-workers=3 {|f| var ff = (str:trim-suffix $f '/') $cmd archive $ff'.tar.'$format $ff printf "'%s' archivé\n" $ff } $argv } edit:add-var desarchiver~ {|@argv| peach {|f| var ff = $f $cmd unarchive $ff printf "'%s' désarchivé\n" $ff } $argv } edit:add-var listarchiver~ {|@argv| peach {|f| var ff = $f $cmd ls $ff } $argv }