]> gitweb.factorcode.org Git - factor.git/blob - extra/mason/release/archive/archive.factor
Remove Windows CE from core/ basis/ and build-support/
[factor.git] / extra / mason / release / archive / archive.factor
1 ! Copyright (C) 2008 Eduardo Cavazos, Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: arrays combinators locals io.directories
4 io.directories.hierarchy io.files io.launcher io.pathnames
5 kernel make mason.common mason.config mason.platform namespaces
6 prettyprint sequences ;
7 IN: mason.release.archive
8
9 : base-name ( -- string )
10     [ "factor-" % platform % "-" % stamp get % ] "" make ;
11
12 : extension ( os -- extension )
13     {
14         { "windows" [ ".zip" ] }
15         { "macosx" [ ".dmg" ] }
16         [ drop ".tar.gz" ]
17     } case ;
18
19 : archive-name ( -- string ) base-name target-os get extension append ;
20
21 :: make-windows-archive ( archive-name -- )
22     { "zip" "-r" archive-name "factor" } short-running-process ;
23
24 :: make-disk-image ( archive-name volume-name dmg-root -- )
25     { "hdiutil" "create" "-srcfolder" dmg-root "-fs" "HFS+" "-volname" volume-name archive-name } short-running-process ;
26
27 : make-macosx-archive ( archive-name -- )
28     "dmg-root" make-directory
29     "factor" "dmg-root" copy-tree-into
30     "factor" "dmg-root" make-disk-image
31     "dmg-root" really-delete-tree ;
32
33 :: make-unix-archive ( archive-name -- )
34     { "tar" "-cvzf" archive-name "factor" } short-running-process ;
35
36 : make-archive ( archive-name -- )
37     target-os get {
38         { "windows" [ make-windows-archive ] }
39         { "macosx" [ make-macosx-archive ] }
40         [ drop make-unix-archive ]
41     } case ;
42
43 : releases ( -- path )
44     builds-dir get "releases" append-path dup make-directories ;
45
46 : save-archive ( archive-name -- )
47     releases move-file-into ;