Merge pull request #116 from vbatts/stdin
gomtree: allow manifest to be provided on stdin
This commit is contained in:
commit
1a3d369341
2 changed files with 35 additions and 0 deletions
|
@ -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
22
test/cli/0008.sh
Normal 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}
|
Loading…
Reference in a new issue