]> gitweb.factorcode.org Git - factor.git/blob - extra/mason/build/build.factor
mason: working on a big overhaul of mason. Status updates sent to a web service,...
[factor.git] / extra / mason / build / build.factor
1 ! Copyright (C) 2008, 2009 Eduardo Cavazos, Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: arrays kernel calendar io.directories io.encodings.utf8
4 io.files io.launcher mason.child mason.cleanup mason.common
5 mason.help mason.release mason.report mason.email mason.notify
6 namespaces prettyprint ;
7 IN: mason.build
8
9 QUALIFIED: continuations
10
11 : create-build-dir ( -- )
12     now datestamp stamp set
13     build-dir make-directory ;
14
15 : enter-build-dir  ( -- ) build-dir set-current-directory ;
16
17 : clone-builds-factor ( -- )
18     "git" "clone" builds/factor 3array try-output-process ;
19
20 : begin-build ( -- )
21     "factor" [ git-id ] with-directory
22     [ "git-id" to-file ] [ notify-begin-build ] bi ;
23
24 : build ( -- )
25     create-build-dir
26     enter-build-dir
27     clone-builds-factor
28     [
29         begin-build
30         build-child
31         [ notify-report ]
32         [ status-clean eq? [ upload-help release ] when ] bi
33     ] [ cleanup ] [ ] continuations:cleanup ;
34
35 MAIN: build