USING: kernel combinators system sequences io.files io.launcher prettyprint builder.util builder.common ; IN: builder.release.archive ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! : base-name ( -- string ) { "factor" [ os unparse ] cpu- stamp> } to-strings "-" join ; : extension ( -- extension ) { { [ os winnt? ] [ ".zip" ] } { [ os macosx? ] [ ".dmg" ] } { [ os unix? ] [ ".tar.gz" ] } } cond ; : archive-name ( -- string ) base-name extension append ; ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! : windows-archive-cmd ( -- cmd ) { "zip" "-r" archive-name "factor" } ; : macosx-archive-cmd ( -- cmd ) { "hdiutil" "create" "-srcfolder" "factor" "-fs" "HFS+" "-volname" "factor" archive-name } ; : unix-archive-cmd ( -- cmd ) { "tar" "-cvzf" archive-name "factor" } ; ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! : archive-cmd ( -- cmd ) { { [ os windows? ] [ windows-archive-cmd ] } { [ os macosx? ] [ macosx-archive-cmd ] } { [ os unix? ] [ unix-archive-cmd ] } } cond ; ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! : make-archive ( -- ) archive-cmd to-strings try-process ; ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! : releases ( -- path ) builds "releases" append-path dup exists? not [ dup make-directory ] when ; : save-archive ( -- ) archive-name releases move-file-into ;