]> gitweb.factorcode.org Git - factor.git/blob - extra/mason/release/archive/archive.factor
e76979d88527bda187acb5cce23f7fee5778a8fa
[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: kernel combinators sequences make namespaces io.files
4 io.launcher prettyprint arrays
5 mason.common mason.platform mason.config ;
6 IN: mason.release.archive
7
8 : base-name ( -- string )
9     [ "factor-" % platform % "-" % stamp get % ] "" make ;
10
11 : extension ( -- extension )
12     target-os get {
13         { "winnt" [ ".zip" ] }
14         { "macosx" [ ".dmg" ] }
15         [ drop ".tar.gz" ]
16     } case ;
17
18 : archive-name ( -- string ) base-name extension append ;
19
20 : make-windows-archive ( -- )
21     [ "zip" , "-r" , archive-name , "factor" , ] { } make try-process ;
22
23 : make-macosx-archive ( -- )
24     { "mkdir" "dmg-root" } try-process
25     { "cp" "-R" "factor" "dmg-root" } try-process
26     { "hdiutil" "create"
27         "-srcfolder" "dmg-root"
28         "-fs" "HFS+"
29     "-volname" "factor" }
30     archive-name suffix try-process
31     "dmg-root" delete-tree ;
32
33 : make-unix-archive ( -- )
34     [ "tar" , "-cvzf" , archive-name , "factor" , ] { } make try-process ;
35
36 : make-archive ( -- )
37     target-os get {
38         { "winnt" [ 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 ( -- )
47     archive-name releases move-file-into ;