From 252e96a6702aa7589094b06eee41ea6c844f307c Mon Sep 17 00:00:00 2001 From: Zack Scholl Date: Wed, 17 Jul 2019 18:06:52 -0600 Subject: [PATCH] simplify toggling --- src/cli/cli.go | 56 +++++++++++++++++++------------------------------- 1 file changed, 21 insertions(+), 35 deletions(-) diff --git a/src/cli/cli.go b/src/cli/cli.go index cc6e66f..ad3f5a1 100644 --- a/src/cli/cli.go +++ b/src/cli/cli.go @@ -124,47 +124,36 @@ func send(c *cli.Context) (err error) { } configFile = path.Join(configFile, "send.json") - var crocOptions croc.Options + crocOptions := croc.Options{ + SharedSecret: c.String("code"), + IsSender: true, + Debug: c.GlobalBool("debug"), + NoPrompt: c.GlobalBool("yes"), + RelayAddress: c.GlobalString("relay"), + Stdout: c.GlobalBool("stdout"), + DisableLocal: c.Bool("no-local"), + RelayPorts: strings.Split(c.String("ports"), ","), + } b, errOpen := ioutil.ReadFile(configFile) if errOpen == nil && !c.GlobalBool("remember") { - err = json.Unmarshal(b, &crocOptions) + var rememberedOptions croc.Options + err = json.Unmarshal(b, &rememberedOptions) if err != nil { log.Error(err) return } - // update anything that has changed - if crocOptions.Debug != c.GlobalBool("debug") { - crocOptions.Debug = c.GlobalBool("debug") + // update anything that isn't explicitly set + if !c.GlobalIsSet("relay") { + crocOptions.RelayAddress = rememberedOptions.RelayAddress } - if c.GlobalBool("yes") { - crocOptions.NoPrompt = c.GlobalBool("yes") + if !c.IsSet("no-local") { + crocOptions.DisableLocal = rememberedOptions.DisableLocal } - if crocOptions.RelayAddress != c.GlobalString("relay") { - crocOptions.RelayAddress = c.GlobalString("relay") + if !c.IsSet("ports") { + crocOptions.RelayPorts = rememberedOptions.RelayPorts } - if c.GlobalBool("stdout") { - crocOptions.Stdout = c.GlobalBool("stdout") - } - // TODO: use c.IsSet - - if c.Bool("no-local") { - crocOptions.DisableLocal = c.Bool("no-local") - } - // TODO: add ports - - if c.String("code") != "" { - crocOptions.SharedSecret = "" - } - } else { - crocOptions = croc.Options{ - SharedSecret: "", - IsSender: true, - Debug: c.GlobalBool("debug"), - NoPrompt: c.GlobalBool("yes"), - RelayAddress: c.GlobalString("relay"), - Stdout: c.GlobalBool("stdout"), - DisableLocal: c.Bool("no-local"), - RelayPorts: strings.Split(c.String("ports"), ","), + if !c.IsSet("code") { + crocOptions.SharedSecret = rememberedOptions.SharedSecret } } @@ -197,9 +186,6 @@ func send(c *cli.Context) (err error) { return errors.New("must specify file: croc send [filename]") } - if c.String("code") != "" { - crocOptions.SharedSecret = c.String("code") - } if len(crocOptions.SharedSecret) == 0 { // generate code phrase crocOptions.SharedSecret = utils.GetRandomName()