mirror of
https://github.com/vbatts/go-mtree.git
synced 2025-09-13 22:03:19 +00:00
Merge pull request #207 from cyphar/error-exit-code
gomtree: return exit status != 0 on error
This commit is contained in:
commit
b454bc0bdd
5 changed files with 14 additions and 18 deletions
|
@ -1,7 +1,6 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
@ -51,23 +50,20 @@ to support xattrs and interacting with tar archives.`
|
||||||
app.OnUsageError = func(ctx *cli.Context, err error, isSubcommand bool) error {
|
app.OnUsageError = func(ctx *cli.Context, err error, isSubcommand bool) error {
|
||||||
if ctx.Command.Name == "gomtree" && strings.Contains(err.Error(), "flag provided but not defined") {
|
if ctx.Command.Name == "gomtree" && strings.Contains(err.Error(), "flag provided but not defined") {
|
||||||
runValidate = true
|
runValidate = true
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := app.Run(os.Args); err != nil {
|
err := app.Run(os.Args)
|
||||||
fmt.Println(err.Error())
|
// If it failed, run the command again with the validate command as the
|
||||||
}
|
// default if it failed.
|
||||||
|
if err != nil && runValidate {
|
||||||
// So we run the command again with the validate command as the default.
|
|
||||||
if runValidate {
|
|
||||||
app.OnUsageError = nil
|
app.OnUsageError = nil
|
||||||
args := []string{os.Args[0], "validate"}
|
args := []string{os.Args[0], "validate"}
|
||||||
args = append(args, os.Args[1:]...)
|
args = append(args, os.Args[1:]...)
|
||||||
if err := app.Run(args); err != nil {
|
err = app.Run(args)
|
||||||
fmt.Println(err.Error())
|
}
|
||||||
}
|
if err != nil {
|
||||||
|
logrus.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,14 +17,14 @@ setfattr -n user.mtree.testing -v "apples and=bananas" "${t}/dir/file"
|
||||||
$gomtree -c -k "sha256digest,xattrs" -p ${t}/dir > ${t}/${name}.mtree
|
$gomtree -c -k "sha256digest,xattrs" -p ${t}/dir > ${t}/${name}.mtree
|
||||||
|
|
||||||
setfattr -n user.mtree.testing -v "bananas and lemons" "${t}/dir/file"
|
setfattr -n user.mtree.testing -v "bananas and lemons" "${t}/dir/file"
|
||||||
! $gomtree -p ${t}/dir -f ${t}/${name}.mtree
|
(! $gomtree -p ${t}/dir -f ${t}/${name}.mtree)
|
||||||
|
|
||||||
setfattr -x user.mtree.testing "${t}/dir/file"
|
setfattr -x user.mtree.testing "${t}/dir/file"
|
||||||
! $gomtree -p ${t}/dir -f ${t}/${name}.mtree
|
(! $gomtree -p ${t}/dir -f ${t}/${name}.mtree)
|
||||||
|
|
||||||
setfattr -n user.mtree.testing -v "apples and=bananas" "${t}/dir/file"
|
setfattr -n user.mtree.testing -v "apples and=bananas" "${t}/dir/file"
|
||||||
setfattr -n user.mtree.another -v "another a=b" "${t}/dir/file"
|
setfattr -n user.mtree.another -v "another a=b" "${t}/dir/file"
|
||||||
! $gomtree -p ${t}/dir -f ${t}/${name}.mtree
|
(! $gomtree -p ${t}/dir -f ${t}/${name}.mtree)
|
||||||
|
|
||||||
setfattr -n user.mtree.testing -v "apples and=bananas" "${t}/dir/file"
|
setfattr -n user.mtree.testing -v "apples and=bananas" "${t}/dir/file"
|
||||||
setfattr -x user.mtree.another "${t}/dir/file"
|
setfattr -x user.mtree.another "${t}/dir/file"
|
||||||
|
|
|
@ -24,7 +24,7 @@ ${gomtree} -k uid,gid,size,type,link,nlink,sha256digest -f ${t}/root.mtree -p ${
|
||||||
|
|
||||||
# Modify it and make sure that it successfully figures out what changed.
|
# Modify it and make sure that it successfully figures out what changed.
|
||||||
echo "othe data" > "${t}/root/$(printf 'this file has \u042a some unicode !!')"
|
echo "othe data" > "${t}/root/$(printf 'this file has \u042a some unicode !!')"
|
||||||
! ${gomtree} -k uid,gid,size,type,link,nlink,sha256digest -f ${t}/root.mtree -p ${t}/root
|
(! ${gomtree} -k uid,gid,size,type,link,nlink,sha256digest -f ${t}/root.mtree -p ${t}/root)
|
||||||
|
|
||||||
echo "some data" > "${t}/root/$(printf 'this file has \u042a some unicode !!')"
|
echo "some data" > "${t}/root/$(printf 'this file has \u042a some unicode !!')"
|
||||||
${gomtree} -k uid,gid,size,type,link,nlink,sha256digest -f ${t}/root.mtree -p ${t}/root
|
${gomtree} -k uid,gid,size,type,link,nlink,sha256digest -f ${t}/root.mtree -p ${t}/root
|
||||||
|
|
|
@ -19,7 +19,7 @@ rm -rf ${t}/extract/*.go
|
||||||
${gomtree} -K sha256digest -c -p ${t}/extract/ > ${t}/${name}-2.mtree
|
${gomtree} -K sha256digest -c -p ${t}/extract/ > ${t}/${name}-2.mtree
|
||||||
|
|
||||||
# this _ought_ to fail because the files are missing now
|
# this _ought_ to fail because the files are missing now
|
||||||
! ${gomtree} -f ${t}/${name}-1.mtree -f ${t}/${name}-2.mtree
|
(! ${gomtree} -f ${t}/${name}-1.mtree -f ${t}/${name}-2.mtree)
|
||||||
|
|
||||||
popd
|
popd
|
||||||
rm -rf ${t}
|
rm -rf ${t}
|
||||||
|
|
|
@ -16,7 +16,7 @@ touch ${t}/foo
|
||||||
|
|
||||||
## can not walk a file. We're expecting a directory.
|
## can not walk a file. We're expecting a directory.
|
||||||
## https://github.com/vbatts/go-mtree/issues/166
|
## https://github.com/vbatts/go-mtree/issues/166
|
||||||
! ${gomtree} -c -K uname,uid,gname,gid,type,nlink,link,mode,flags,xattr,xattrs,size,time,sha256 -p ${t}/foo
|
(! ${gomtree} -c -K uname,uid,gname,gid,type,nlink,link,mode,flags,xattr,xattrs,size,time,sha256 -p ${t}/foo)
|
||||||
|
|
||||||
popd
|
popd
|
||||||
rm -rf ${t}
|
rm -rf ${t}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue