factor/extra/mason/release/archive/archive.factor

47 lines
1.5 KiB
Factor
Raw Normal View History

2008-09-16 00:20:33 -04:00
! Copyright (C) 2008 Eduardo Cavazos, Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: arrays combinators locals io.directories
io.directories.hierarchy io.files io.launcher io.pathnames
kernel make mason.common mason.config mason.platform namespaces
prettyprint sequences ;
2008-09-16 00:20:33 -04:00
IN: mason.release.archive
: base-name ( -- string )
[ "factor-" % platform % "-" % stamp get % ] "" make ;
: extension ( -- extension )
target-os get {
{ "winnt" [ ".zip" ] }
{ "macosx" [ ".dmg" ] }
[ drop ".tar.gz" ]
} case ;
: archive-name ( -- string ) base-name extension append ;
:: make-windows-archive ( archive-name -- )
{ "zip" "-r" archive-name "factor" } short-running-process ;
:: make-disk-image ( archive-name volume-name dmg-root -- )
{ "hdiutil" "create" "-srcfolder" dmg-root "-fs" "HFS+" "-volname" volume-name archive-name } short-running-process ;
2008-09-16 00:20:33 -04:00
: make-macosx-archive ( archive-name -- )
"dmg-root" make-directory
"factor" "dmg-root" copy-tree-into
"factor" "dmg-root" make-disk-image
"dmg-root" really-delete-tree ;
2008-09-16 00:20:33 -04:00
:: make-unix-archive ( archive-name -- )
{ "tar" "-cvzf" archive-name "factor" } short-running-process ;
2008-09-16 00:20:33 -04:00
: make-archive ( archive-name -- )
2008-09-16 00:20:33 -04:00
target-os get {
{ "winnt" [ make-windows-archive ] }
{ "macosx" [ make-macosx-archive ] }
[ drop make-unix-archive ]
} case ;
: releases ( -- path )
builds-dir get "releases" append-path dup make-directories ;
: save-archive ( archive-name -- )
releases move-file-into ;