1 ! Copyright (C) 2008 Eduardo Cavazos, Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors combinators io.directories
4 io.files io.pathnames kernel literals locals make mason.common
5 mason.config mason.platform namespaces sequences system words ;
6 IN: mason.release.archive
8 : base-name ( -- string )
9 [ "factor-" % platform % "-" % stamp get % ] "" make ;
11 : extension ( os -- extension )
12 dup word? [ name>> ] when
14 { "windows" [ ".zip" ] }
15 { "macosx" [ ".dmg" ] }
19 : archive-name ( -- string )
20 base-name target-os get extension append ;
22 :: make-windows-archive ( archive-name -- )
23 { "zip" "-r" archive-name "factor" } short-running-process ;
25 :: make-disk-image ( archive-name volume-name dmg-root -- )
30 "-volname" volume-name
32 } short-running-process ;
35 : make-macosx-archive ( archive-name -- )
36 "dmg-root" make-directory
37 "factor" "dmg-root" copy-tree-into
38 "factor" "dmg-root" make-disk-image
39 "dmg-root" delete-tree ;
41 :: make-unix-archive ( archive-name -- )
42 { "tar" "-cvzf" archive-name "factor" } short-running-process ;
44 : make-archive ( archive-name -- )
46 { windows [ make-windows-archive ] }
47 { macosx [ make-macosx-archive ] }
48 [ drop make-unix-archive ]
51 : releases ( -- path )
52 builds-dir get "releases" append-path dup make-directories ;
54 : save-archive ( archive-name -- )
55 releases move-file-into ;