Merge pull request #116 from vbatts/stdin

gomtree: allow manifest to be provided on stdin
This commit is contained in:
Vincent Batts 2017-01-20 13:17:52 -05:00 committed by GitHub
commit 1a3d369341
2 changed files with 35 additions and 0 deletions

View file

@ -257,6 +257,19 @@ func app() error {
return nil return nil
} }
// no spec manifest has been provided yet, so look for it on stdin
if specDh == nil {
// load the hierarchy
specDh, err = mtree.ParseSpec(os.Stdin)
if err != nil {
return err
}
// We can't check against more fields than in the specKeywords list, so
// currentKeywords can only have a subset of specKeywords.
specKeywords = specDh.UsedKeywords()
}
// This is a validation. // This is a validation.
if specDh != nil && stateDh != nil { if specDh != nil && stateDh != nil {
var res []mtree.InodeDelta var res []mtree.InodeDelta

22
test/cli/0008.sh Normal file
View file

@ -0,0 +1,22 @@
#!/bin/bash
set -e
name=$(basename $0)
root="$(dirname $(dirname $(dirname $0)))"
gomtree=$(readlink -f ${root}/gomtree)
t=$(mktemp -d /tmp/go-mtree.XXXXXX)
echo "[${name}] Running in ${t}"
pushd ${root}
mkdir -p ${t}/extract
git archive --format=tar HEAD^{tree} . | tar -C ${t}/extract/ -x
${gomtree} -K sha256digest -c -p ${t}/extract/ > ${t}/${name}.mtree
## This is a use-case for checking a directory, but by reading the manifest from stdin
## since the `-f` flag is not provided.
cat ${t}/${name}.mtree | ${gomtree} -p ${t}/extract/
popd
rm -rf ${t}