mirror of
https://github.com/vbatts/go-mtree.git
synced 2024-11-25 17:45:39 +00:00
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
|
||||
}
|
||||
|
||||
// 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.
|
||||
if specDh != nil && stateDh != nil {
|
||||
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