diff --git a/cmd/sops/main.go b/cmd/sops/main.go index 5b1050e45..42883ff37 100644 --- a/cmd/sops/main.go +++ b/cmd/sops/main.go @@ -171,7 +171,10 @@ func main() { fileName := c.Args()[0] command := c.Args()[1] - inputStore := inputStore(c, fileName) + inputStore, err := inputStore(c, fileName) + if err != nil { + return toExitError(err) + } svcs := keyservices(c) @@ -272,8 +275,14 @@ func main() { fileName := c.Args()[0] command := c.Args()[1] - inputStore := inputStore(c, fileName) - outputStore := outputStore(c, fileName) + inputStore, err := inputStore(c, fileName) + if err != nil { + return toExitError(err) + } + outputStore, err := outputStore(c, fileName) + if err != nil { + return toExitError(err) + } svcs := keyservices(c) @@ -365,13 +374,17 @@ func main() { return toExitError(err) } if !info.IsDir() { + inputStore, err := inputStore(c, subPath) + if err != nil { + return toExitError(err) + } err = publishcmd.Run(publishcmd.Opts{ ConfigPath: configPath, InputPath: subPath, Cipher: aes.NewCipher(), KeyServices: keyservices(c), DecryptionOrder: order, - InputStore: inputStore(c, subPath), + InputStore: inputStore, Interactive: !c.Bool("yes"), OmitExtensions: c.Bool("omit-extensions"), Recursive: c.Bool("recursive"), @@ -440,7 +453,10 @@ func main() { } fileName := c.Args()[0] - inputStore := inputStore(c, fileName) + inputStore, err := inputStore(c, fileName) + if err != nil { + return toExitError(err) + } opts := filestatuscmd.Opts{ InputStore: inputStore, InputPath: fileName, @@ -560,11 +576,19 @@ func main() { group = append(group, key) } } + inputStore, err := inputStore(c, c.String("file")) + if err != nil { + return toExitError(err) + } + outputStore, err := outputStore(c, c.String("file")) + if err != nil { + return toExitError(err) + } return groups.Add(groups.AddOpts{ InputPath: c.String("file"), InPlace: c.Bool("in-place"), - InputStore: inputStore(c, c.String("file")), - OutputStore: outputStore(c, c.String("file")), + InputStore: inputStore, + OutputStore: outputStore, Group: group, GroupThreshold: c.Int("shamir-secret-sharing-threshold"), KeyServices: keyservices(c), @@ -599,11 +623,19 @@ func main() { return fmt.Errorf("failed to parse [index] argument: %s", err) } + inputStore, err := inputStore(c, c.String("file")) + if err != nil { + return toExitError(err) + } + outputStore, err := outputStore(c, c.String("file")) + if err != nil { + return toExitError(err) + } return groups.Delete(groups.DeleteOpts{ InputPath: c.String("file"), InPlace: c.Bool("in-place"), - InputStore: inputStore(c, c.String("file")), - OutputStore: outputStore(c, c.String("file")), + InputStore: inputStore, + OutputStore: outputStore, Group: uint(group), GroupThreshold: c.Int("shamir-secret-sharing-threshold"), KeyServices: keyservices(c), @@ -735,8 +767,14 @@ func main() { fileNameOverride = fileName } - inputStore := inputStore(c, fileNameOverride) - outputStore := outputStore(c, fileNameOverride) + inputStore, err := inputStore(c, fileNameOverride) + if err != nil { + return toExitError(err) + } + outputStore, err := outputStore(c, fileNameOverride) + if err != nil { + return toExitError(err) + } svcs := keyservices(c) order, err := decryptionOrder(c.String("decryption-order")) @@ -899,8 +937,14 @@ func main() { fileNameOverride = fileName } - inputStore := inputStore(c, fileNameOverride) - outputStore := outputStore(c, fileNameOverride) + inputStore, err := inputStore(c, fileNameOverride) + if err != nil { + return toExitError(err) + } + outputStore, err := outputStore(c, fileNameOverride) + if err != nil { + return toExitError(err) + } svcs := keyservices(c) encConfig, err := getEncryptConfig(c, fileNameOverride) @@ -1058,8 +1102,14 @@ func main() { fileNameOverride = fileName } - inputStore := inputStore(c, fileNameOverride) - outputStore := outputStore(c, fileNameOverride) + inputStore, err := inputStore(c, fileNameOverride) + if err != nil { + return toExitError(err) + } + outputStore, err := outputStore(c, fileNameOverride) + if err != nil { + return toExitError(err) + } svcs := keyservices(c) order, err := decryptionOrder(c.String("decryption-order")) @@ -1203,8 +1253,14 @@ func main() { return toExitError(err) } - inputStore := inputStore(c, fileName) - outputStore := outputStore(c, fileName) + inputStore, err := inputStore(c, fileName) + if err != nil { + return toExitError(err) + } + outputStore, err := outputStore(c, fileName) + if err != nil { + return toExitError(err) + } svcs := keyservices(c) order, err := decryptionOrder(c.String("decryption-order")) @@ -1298,8 +1354,14 @@ func main() { return toExitError(err) } - inputStore := inputStore(c, fileName) - outputStore := outputStore(c, fileName) + inputStore, err := inputStore(c, fileName) + if err != nil { + return toExitError(err) + } + outputStore, err := outputStore(c, fileName) + if err != nil { + return toExitError(err) + } svcs := keyservices(c) path, err := parseTreePath(c.Args()[1]) @@ -1389,8 +1451,14 @@ func main() { return toExitError(err) } - inputStore := inputStore(c, fileName) - outputStore := outputStore(c, fileName) + inputStore, err := inputStore(c, fileName) + if err != nil { + return toExitError(err) + } + outputStore, err := outputStore(c, fileName) + if err != nil { + return toExitError(err) + } svcs := keyservices(c) path, err := parseTreePath(c.Args()[1]) @@ -1687,8 +1755,14 @@ func main() { } } - inputStore := inputStore(c, fileNameOverride) - outputStore := outputStore(c, fileNameOverride) + inputStore, err := inputStore(c, fileNameOverride) + if err != nil { + return toExitError(err) + } + outputStore, err := outputStore(c, fileNameOverride) + if err != nil { + return toExitError(err) + } svcs := keyservices(c) order, err := decryptionOrder(c.String("decryption-order")) @@ -2049,13 +2123,19 @@ func loadStoresConfig(context *cli.Context, path string) (*config.StoresConfig, return config.LoadStoresConfig(configPath) } -func inputStore(context *cli.Context, path string) common.Store { - storesConf, _ := loadStoresConfig(context, path) - return common.DefaultStoreForPathOrFormat(storesConf, path, context.String("input-type")) +func inputStore(context *cli.Context, path string) (common.Store, error) { + storesConf, err := loadStoresConfig(context, path) + if err != nil { + return nil, err + } + return common.DefaultStoreForPathOrFormat(storesConf, path, context.String("input-type")), nil } -func outputStore(context *cli.Context, path string) common.Store { - storesConf, _ := loadStoresConfig(context, path) +func outputStore(context *cli.Context, path string) (common.Store, error) { + storesConf, err := loadStoresConfig(context, path) + if err != nil { + return nil, err + } if context.IsSet("indent") { indent := context.Int("indent") storesConf.YAML.Indent = indent @@ -2063,7 +2143,7 @@ func outputStore(context *cli.Context, path string) common.Store { storesConf.JSONBinary.Indent = indent } - return common.DefaultStoreForPathOrFormat(storesConf, path, context.String("output-type")) + return common.DefaultStoreForPathOrFormat(storesConf, path, context.String("output-type")), nil } func parseTreePath(arg string) ([]interface{}, error) {