From 96f2470e5d5259b51daddeb7b7ab9bf9d40dfebe Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Wed, 4 Jul 2018 20:20:20 -0500 Subject: [PATCH] zealot: Get a list of changed vocabs from the last run until now. Also add a word to get a list of vocabs that changed between any two git revs. --- extra/zealot/cli-changed-vocabs/authors.txt | 1 + .../cli-changed-vocabs.factor | 8 +++++ extra/zealot/factor/factor.factor | 32 +++++++++++++++++-- 3 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 extra/zealot/cli-changed-vocabs/authors.txt create mode 100644 extra/zealot/cli-changed-vocabs/cli-changed-vocabs.factor diff --git a/extra/zealot/cli-changed-vocabs/authors.txt b/extra/zealot/cli-changed-vocabs/authors.txt new file mode 100644 index 0000000000..7c1b2f2279 --- /dev/null +++ b/extra/zealot/cli-changed-vocabs/authors.txt @@ -0,0 +1 @@ +Doug Coleman diff --git a/extra/zealot/cli-changed-vocabs/cli-changed-vocabs.factor b/extra/zealot/cli-changed-vocabs/cli-changed-vocabs.factor new file mode 100644 index 0000000000..c14bbedc78 --- /dev/null +++ b/extra/zealot/cli-changed-vocabs/cli-changed-vocabs.factor @@ -0,0 +1,8 @@ +! Copyright (C) 2018 Doug Coleman. +! See http://factorcode.org/license.txt for BSD license. +USING: io sequences zealot.factor ; +IN: zealot.cli-changed-vocabs + +: zealot-changed-vocabs ( -- ) ci-vocabs-to-test [ print ] each ; + +MAIN: zealot-changed-vocabs \ No newline at end of file diff --git a/extra/zealot/factor/factor.factor b/extra/zealot/factor/factor.factor index 0fdaffcfb7..a4fc2a7e15 100644 --- a/extra/zealot/factor/factor.factor +++ b/extra/zealot/factor/factor.factor @@ -4,9 +4,9 @@ USING: accessors arrays bootstrap.image calendar cli.git combinators concurrency.combinators formatting fry http.client io io.directories io.launcher io.pathnames kernel math.parser memory modern.paths namespaces parser.notes prettyprint -sequences sequences.extras system system-info threads tools.test -tools.test.private vocabs vocabs.hierarchy -vocabs.hierarchy.private vocabs.loader zealot ; +sequences sequences.extras sets splitting system system-info +threads tools.test tools.test.private vocabs vocabs.hierarchy +vocabs.hierarchy.private vocabs.loader vocabs.metadata zealot ; IN: zealot.factor : download-boot-checksums ( path branch -- ) @@ -168,3 +168,29 @@ M: windows factor-path "./factor.com" ; [ "ZEALOT LOADING ROOTS" print flush drop zealot-load-commands ] [ "ZEALOT TESTING ROOTS" print flush drop zealot-test-commands ] } 2cleave ; + +: vocab-path>vocab ( path -- vocab ) + [ parent-directory ] map + [ "/" split1 nip ] map + [ path-separator split harvest "." join ] map ; + +: changed-factor-vocabs ( old-rev new-rev -- vocabs ) + [ + default-vocab-roots + [ ":" split1 nip ] map + [ "/" append ] map + ] 2dip git-diff-name-only* + [ ".factor" tail? ] filter + [ swap [ head? ] with any? ] with filter + [ parent-directory ] map + [ "/" split1 nip ] map + [ path-separator split harvest "." join ] map members ; + +: changed-factor-vocabs-from-master ( -- vocabs ) + "master" "origin/master" changed-factor-vocabs ; + +: reject-unloadable-vocabs ( vocabs -- vocabs' ) + [ don't-load? ] reject ; + +: ci-vocabs-to-test ( -- vocabs ) + changed-factor-vocabs-from-master reject-unloadable-vocabs ; \ No newline at end of file