]> gitweb.factorcode.org Git - factor.git/blob - extra/tools/copy/copy.factor
io.files: exists? -> file-exists? and rename primitive.
[factor.git] / extra / tools / copy / copy.factor
1 ! Copyright (C) 2011 John Benediktsson
2 ! See http://factorcode.org/license.txt for BSD license
3
4 USING: combinators combinators.short-circuit command-line io
5 io.directories io.files io.files.info kernel math namespaces
6 sequences ;
7
8 IN: tools.copy
9
10 : usage ( -- )
11     "Usage: copy source ... target" print ;
12
13 : copy-to-dir ( args -- )
14     dup last file-info directory?
15     [ unclip-last copy-files-into ] [ drop usage ] if ;
16
17 : copy-to-file ( args -- )
18     dup last { [ file-exists? ] [ file-info directory? ] } 1&&
19     [ copy-to-dir ] [ first2 copy-file ] if ;
20
21 : run-copy ( -- )
22     command-line get dup length {
23         { [ dup 2 > ] [ drop copy-to-dir  ] }
24         { [ dup 2 = ] [ drop copy-to-file ] }
25         [ 2drop usage ]
26     } cond ;
27
28 MAIN: run-copy