Merge branch 'master' of git://factorcode.org/git/factor
[factor/jcg.git] / extra / mason / mason.factor
blob299a2f4e1fe1a885bd24cd656577f2269a4e8455
1 ! Copyright (C) 2008 Eduardo Cavazos, Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors calendar continuations debugger debugger io
4 io.directories io.files kernel mason.build mason.common
5 mason.email mason.updates namespaces threads ;
6 IN: mason
8 : build-loop-error ( error -- )
9     error-continuation get call>> email-error ;
11 : build-loop-fatal ( error -- )
12     "FATAL BUILDER ERROR:" print
13     error. flush ;
15 : build-loop ( -- )
16     ?prepare-build-machine
17     [
18         [
19             builds/factor set-current-directory
20             new-code-available? [ build ] when
21         ] [
22             build-loop-error
23         ] recover
24     ] [
25         build-loop-fatal
26     ] recover
27     5 minutes sleep
28     build-loop ;
30 MAIN: build-loop