zealot: Initial commit.

Zealot is a replacement for mason that allows parallel testing, testing
branches, and over-engineered git commands.
modern-harvey2
Doug Coleman 2017-09-15 00:56:59 -05:00
parent 994485a90c
commit 7ff2b9c345
5 changed files with 109 additions and 1 deletions

1
.gitignore vendored
View File

@ -14,7 +14,6 @@ Factor/factor
*.image
factor.image.fresh
*.dylib
factor
factor.com
*#*#
.DS_Store

1
extra/zealot/authors.txt Normal file
View File

@ -0,0 +1 @@
Doug Coleman

View File

@ -0,0 +1 @@
Doug Coleman

View File

@ -0,0 +1,43 @@
! Copyright (C) 2017 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: arrays bootstrap.image cli.git combinators formatting fry
http.client io.directories io.launcher kernel math.parser
sequences system-info zealot ;
IN: zealot.factor
: download-boot-checksums ( path branch -- )
'[ _ "http://downloads.factorcode.org/images/%s/checksums.txt" sprintf download ] with-directory ;
: download-boot-image ( path branch image-name -- )
'[ _ _ "http://downloads.factorcode.org/images/%s/%s" sprintf download ] with-directory ;
: download-my-boot-image ( path branch -- )
my-boot-image-name download-boot-image ;
: compile-factor ( path -- process )
[ { "make" "-j" } cpus number>string suffix run-process ] with-directory ;
: bootstrap-factor ( path -- )
[ "./factor" "-i=" my-boot-image-name append 2array try-output-process ] with-directory ;
: build-sh-update-factor ( path -- process )
[ { "build.sh" "update" } run-process ] with-directory ;
: factor-load-all ( path -- )
[
"./factor" "-e=\"USE: vocabs.hierarchy load-all USE: memory save\"" 2array
run-process drop
] with-directory ;
: build-new-factor ( branch -- )
[ "factor" "factor" zealot-github-clone-paths nip ] dip
{
[ drop "factor" "factor" zealot-github-add-build-remote drop ]
[ drop [ git-fetch-all* ] with-directory drop ]
[ zealot-build-checkout-branch drop ]
[ download-my-boot-image ]
[ download-boot-checksums ]
[ drop compile-factor drop ]
[ drop bootstrap-factor ]
[ drop factor-load-all ]
} 2cleave ;

View File

@ -0,0 +1,64 @@
! Copyright (C) 2017 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: cli.git fry io.directories io.pathnames kernel sequences
web-services.github zealot.utils uuid ;
IN: zealot
: default-zealot-directory ( chunk -- path ) [ home ".zealot" ] dip 3append-path ;
: default-zealot-source-directory ( -- path ) "source" default-zealot-directory ;
: default-zealot-builds-directory ( -- path ) "builds" default-zealot-directory ;
: zealot-source-directory ( chunk -- path ) [ default-zealot-source-directory ] dip append-path ;
: zealot-builds-directory ( chunk -- path ) [ default-zealot-builds-directory ] dip append-path ;
: with-default-zealot-source-directory ( chunk quot -- )
[ default-zealot-source-directory ] dip with-ensure-directory ; inline
: with-default-zealot-builds-directory ( chunk quot -- )
[ default-zealot-builds-directory ] dip with-ensure-directory ; inline
: with-zealot-source-directory ( chunk quot -- )
[ zealot-source-directory ] dip with-ensure-directory ; inline
: with-zealot-builds-directory ( chunk quot -- )
[ zealot-builds-directory ] dip with-ensure-directory ; inline
: with-zealot-github-directory ( quot -- )
[ "github" ] dip with-zealot-source-directory ; inline
: with-zealot-github-project-directory ( user project quot -- )
[ "github" ] 3dip [ 3append-path ] dip with-zealot-source-directory ; inline
: zealot-github-clone ( user project -- process )
'[ _ _ 2dup "/" glue github-git-clone-as ] with-zealot-github-directory ; inline
: zealot-github-source-path ( user project -- path )
[ "github" ] 2dip 3append-path zealot-source-directory ;
: zealot-github-builds-path ( user project -- path )
[ "github" ] 2dip 3append-path uuid1 append-path zealot-builds-directory ;
: zealot-github-fetch-all ( user project -- process )
[ git-fetch-all* ] with-zealot-github-project-directory ;
: zealot-github-fetch-tags ( user project -- process )
[ git-fetch-tags* ] with-zealot-github-project-directory ;
: zealot-github-pull ( user project -- process )
[ git-pull* ] with-zealot-github-project-directory ;
: zealot-github-set-build-remote ( path user project -- process )
'[ "origin" _ _ github-ssh-uri git-change-remote* ] with-directory ;
: zealot-github-add-build-remote ( path user project -- process )
'[ "github" _ _ github-ssh-uri git-remote-add* ] with-directory ;
: zealot-github-clone-paths ( user project -- process builds-path )
[ zealot-github-source-path ]
[ zealot-github-builds-path ] 2bi
[ git-clone-as ] keep ;
: zealot-build-checkout-branch ( path branch -- process )
'[ _ git-checkout-existing-branch* ] with-directory ;