logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git
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:

Mgen.lua5++++-
Mpkg/fspec-sync/gen.lua2++
Mrules.ninja9++++++---
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