commit: de279e612e7b1a568e5e25b7b960b0ce1f27219c
parent 2df90914df3e9e1197b267791024cb97b5638d7f
Author: Michael Forney <mforney@mforney.org>
Date: Mon, 22 Jun 2020 22:45:33 -0700
Build root.tar from fspec rather than git repository
Diffstat:
3 files changed, 12 insertions(+), 4 deletions(-)
diff --git 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
@@ -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
@@ -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