55 lines
1.5 KiB
Factor
55 lines
1.5 KiB
Factor
! Copyright (C) 2008, 2011 Eduardo Cavazos, Slava Pestov.
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
USING: arrays calendar combinators continuations io.directories
|
|
io.pathnames kernel mason.child mason.cleanup mason.common
|
|
mason.config mason.docs mason.git mason.notify mason.platform
|
|
mason.release mason.updates namespaces sequences ;
|
|
IN: mason.build
|
|
|
|
: create-build-dir ( -- )
|
|
now datestamp stamp set
|
|
build-dir make-directory ;
|
|
|
|
: enter-build-dir ( -- )
|
|
"Building in directory " build-dir append print-timestamp
|
|
build-dir set-current-directory ;
|
|
|
|
: clone-source ( -- )
|
|
"Cloning GIT repository" print-timestamp
|
|
"git" "clone" builds-dir get "factor" append-path 3array
|
|
short-running-process ;
|
|
|
|
: copy-image ( -- )
|
|
builds-dir get target-boot-image-name append-path
|
|
[ "." copy-file-into ] [ "factor" copy-file-into ] bi ;
|
|
|
|
: save-git-id ( -- )
|
|
"factor" [ git-id ] with-directory {
|
|
[ "git-id" to-file ]
|
|
[ "factor/git-id" to-file ]
|
|
[ current-git-id set ]
|
|
[ notify-begin-build ]
|
|
} cleave ;
|
|
|
|
: begin-build ( -- )
|
|
clone-source
|
|
copy-image
|
|
save-git-id ;
|
|
|
|
: do-build ( -- )
|
|
create-build-dir
|
|
enter-build-dir
|
|
[
|
|
begin-build
|
|
build-child
|
|
[ notify-report ] [
|
|
status-clean eq?
|
|
[ notify-upload upload-docs release ] when
|
|
] bi
|
|
notify-finish
|
|
finish-build
|
|
] [ cleanup-build ] [ ] cleanup
|
|
notify-idle ;
|
|
|
|
MAIN: do-build
|