Skip to content

Commit b454bc0

Browse files
authored
Merge pull request #207 from cyphar/error-exit-code
gomtree: return exit status != 0 on error
2 parents 12e242c + 945eeed commit b454bc0

File tree

5 files changed

+14
-18
lines changed

5 files changed

+14
-18
lines changed

cmd/gomtree/main.go

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package main
22

33
import (
4-
"fmt"
54
"os"
65
"strings"
76

@@ -51,23 +50,20 @@ to support xattrs and interacting with tar archives.`
5150
app.OnUsageError = func(ctx *cli.Context, err error, isSubcommand bool) error {
5251
if ctx.Command.Name == "gomtree" && strings.Contains(err.Error(), "flag provided but not defined") {
5352
runValidate = true
54-
return nil
5553
}
5654
return err
5755
}
5856

59-
if err := app.Run(os.Args); err != nil {
60-
fmt.Println(err.Error())
61-
}
62-
63-
// So we run the command again with the validate command as the default.
64-
if runValidate {
57+
err := app.Run(os.Args)
58+
// If it failed, run the command again with the validate command as the
59+
// default if it failed.
60+
if err != nil && runValidate {
6561
app.OnUsageError = nil
6662
args := []string{os.Args[0], "validate"}
6763
args = append(args, os.Args[1:]...)
68-
if err := app.Run(args); err != nil {
69-
fmt.Println(err.Error())
70-
}
64+
err = app.Run(args)
65+
}
66+
if err != nil {
67+
logrus.Fatal(err)
7168
}
72-
7369
}

test/cli/0003.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ setfattr -n user.mtree.testing -v "apples and=bananas" "${t}/dir/file"
1717
$gomtree -c -k "sha256digest,xattrs" -p ${t}/dir > ${t}/${name}.mtree
1818

1919
setfattr -n user.mtree.testing -v "bananas and lemons" "${t}/dir/file"
20-
! $gomtree -p ${t}/dir -f ${t}/${name}.mtree
20+
(! $gomtree -p ${t}/dir -f ${t}/${name}.mtree)
2121

2222
setfattr -x user.mtree.testing "${t}/dir/file"
23-
! $gomtree -p ${t}/dir -f ${t}/${name}.mtree
23+
(! $gomtree -p ${t}/dir -f ${t}/${name}.mtree)
2424

2525
setfattr -n user.mtree.testing -v "apples and=bananas" "${t}/dir/file"
2626
setfattr -n user.mtree.another -v "another a=b" "${t}/dir/file"
27-
! $gomtree -p ${t}/dir -f ${t}/${name}.mtree
27+
(! $gomtree -p ${t}/dir -f ${t}/${name}.mtree)
2828

2929
setfattr -n user.mtree.testing -v "apples and=bananas" "${t}/dir/file"
3030
setfattr -x user.mtree.another "${t}/dir/file"

test/cli/0009.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ ${gomtree} -k uid,gid,size,type,link,nlink,sha256digest -f ${t}/root.mtree -p ${
2424

2525
# Modify it and make sure that it successfully figures out what changed.
2626
echo "othe data" > "${t}/root/$(printf 'this file has \u042a some unicode !!')"
27-
! ${gomtree} -k uid,gid,size,type,link,nlink,sha256digest -f ${t}/root.mtree -p ${t}/root
27+
(! ${gomtree} -k uid,gid,size,type,link,nlink,sha256digest -f ${t}/root.mtree -p ${t}/root)
2828

2929
echo "some data" > "${t}/root/$(printf 'this file has \u042a some unicode !!')"
3030
${gomtree} -k uid,gid,size,type,link,nlink,sha256digest -f ${t}/root.mtree -p ${t}/root

test/cli/0010.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ rm -rf ${t}/extract/*.go
1919
${gomtree} -K sha256digest -c -p ${t}/extract/ > ${t}/${name}-2.mtree
2020

2121
# this _ought_ to fail because the files are missing now
22-
! ${gomtree} -f ${t}/${name}-1.mtree -f ${t}/${name}-2.mtree
22+
(! ${gomtree} -f ${t}/${name}-1.mtree -f ${t}/${name}-2.mtree)
2323

2424
popd
2525
rm -rf ${t}

test/cli/0011.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ touch ${t}/foo
1616

1717
## can not walk a file. We're expecting a directory.
1818
## https://github.com/vbatts/go-mtree/issues/166
19-
! ${gomtree} -c -K uname,uid,gname,gid,type,nlink,link,mode,flags,xattr,xattrs,size,time,sha256 -p ${t}/foo
19+
(! ${gomtree} -c -K uname,uid,gname,gid,type,nlink,link,mode,flags,xattr,xattrs,size,time,sha256 -p ${t}/foo)
2020

2121
popd
2222
rm -rf ${t}

0 commit comments

Comments
 (0)