summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2020-06-22 22:45:33 -0700
committerMichael Forney <mforney@mforney.org>2020-06-22 23:33:21 -0700
commitde279e612e7b1a568e5e25b7b960b0ce1f27219c (patch)
treeb0f4829e5965c0f233a730bf6792f43358b49bf4
parent2df90914df3e9e1197b267791024cb97b5638d7f (diff)
Build root.tar from fspec rather than git repository
-rw-r--r--gen.lua5
-rw-r--r--pkg/fspec-sync/gen.lua2
-rw-r--r--rules.ninja9
3 files changed, 12 insertions, 4 deletions
diff --git a/gen.lua b/gen.lua
index c6bceac6..da82762e 100644
--- a/gen.lua
+++ b/gen.lua
@@ -25,9 +25,12 @@ gitfile('.perms', '644', '$outdir/root.perms')
build('git-init', '$outdir/root.stamp')
build('git-tree', '$outdir/root.tree', {'$outdir/root.index', '|', '$basedir/scripts/tree.sh', '||', '$outdir/root.stamp'})
-build('git-archive', '$outdir/root.tar', {'|', '$outdir/root.tree'})
build('git-commit', '$outdir/root.commit', {'|', '$outdir/root.tree'})
build('phony', 'commit', '$builddir/root.commit')
+
+build('fspec-sort', '$outdir/root-sorted.fspec', {'$outdir/root.fspec', '|', '$builddir/pkg/fspec-sync/host/fspec-sort'})
+build('fspec-tar', '$outdir/root.tar', {'$outdir/root-sorted.fspec', '|', '$builddir/pkg/fspec-sync/host/fspec-tar'})
+
build('phony', 'build.ninja', 'ninja', {generator='1'})
io.write('default $builddir/root.tree\n')
diff --git a/pkg/fspec-sync/gen.lua b/pkg/fspec-sync/gen.lua
index b1ccaa11..bf9ea22f 100644
--- a/pkg/fspec-sync/gen.lua
+++ b/pkg/fspec-sync/gen.lua
@@ -10,6 +10,8 @@ sub('host.ninja', function()
lib('libcommon.a', {'fatal.c', 'parse.c', 'reallocarray.c'})
exe('fspec-hash', {'fspec-hash.c', 'libcommon.a', '$builddir/pkg/b3sum/host/libblake3.a'}, {'pkg/b3sum/headers'})
+ exe('fspec-sort', {'fspec-sort.c', 'libcommon.a'})
+ exe('fspec-tar', {'fspec-tar.c', 'libcommon.a'})
end)
lib('libcommon.a', {'fatal.c', 'parse.c', 'reallocarray.c'})
diff --git a/rules.ninja b/rules.ninja
index c1fe30c1..ff43bf16 100644
--- a/rules.ninja
+++ b/rules.ninja
@@ -112,15 +112,18 @@ rule git-tree
rule git-commit
command = sh $basedir/scripts/commit.sh $repo $repo_branch $repo_tag $out
-rule git-archive
- command = git -C $repo archive -o $$PWD/$out $repo_tag
-
rule git-init
command = git init $repo_flags $repo && touch $out
rule fspec-hash
command = $builddir/pkg/fspec-sync/host/fspec-hash <$in >$out
+rule fspec-sort
+ command = $builddir/pkg/fspec-sync/host/fspec-sort -p <$in >$out
+
+rule fspec-tar
+ command = $builddir/pkg/fspec-sync/host/fspec-tar <$in >$out
+
rule fetch
command = cd $basedir && sh $$OLDPWD/$script $gendir && touch $$OLDPWD/$out
description = FETCH $gendir