factor/extra/tools/copy/copy.factor

29 lines
753 B
Factor
Raw Normal View History

2015-04-01 17:30:49 -04:00
! Copyright (C) 2011 John Benediktsson
! See http://factorcode.org/license.txt for BSD license
USING: combinators combinators.short-circuit command-line io
io.directories io.files io.files.info kernel math namespaces
sequences ;
IN: tools.copy
: usage ( -- )
"Usage: copy source ... target" print ;
: copy-to-dir ( args -- )
dup last file-info directory?
[ unclip-last copy-files-into ] [ drop usage ] if ;
: copy-to-file ( args -- )
dup last { [ exists? ] [ file-info directory? ] } 1&&
[ copy-to-dir ] [ first2 copy-file ] if ;
: run-copy ( -- )
command-line get dup length {
{ [ dup 2 > ] [ drop copy-to-dir ] }
{ [ dup 2 = ] [ drop copy-to-file ] }
[ 2drop usage ]
} cond ;
MAIN: run-copy