diff --git a/src/cli/cli.go b/src/cli/cli.go index 14c4265ce..99a976a65 100644 --- a/src/cli/cli.go +++ b/src/cli/cli.go @@ -304,6 +304,25 @@ func send(c *cli.Context) (err error) { return errors.New("must specify file: croc send [filename(s) or folder]") } + // if operating system is UNIX, then use environmental variable to set the code + if (runtime.GOOS == "linux" && c.IsSet("code")) || os.Getenv("CROC_SECRET") != "" { + crocOptions.SharedSecret = os.Getenv("CROC_SECRET") + if crocOptions.SharedSecret == "" { + fmt.Printf(`On linux, to send with a custom code phrase, +you need to set the environmental variable CROC_SECRET: + + export CROC_SECRET="****" + croc send file.txt + +Or you can have the code phrase automaticlaly generated: + + croc send file.txt + +`) + os.Exit(0) + } + } + if len(crocOptions.SharedSecret) == 0 { // generate code phrase crocOptions.SharedSecret = utils.GetRandomName() @@ -313,19 +332,6 @@ func send(c *cli.Context) (err error) { return } - // if operating system is UNIX, then use environmental variable to set the code - if runtime.GOOS == "linux" { - log.Debug("forcing code phrase from environmental variable") - crocOptions.SharedSecret = os.Getenv("CROC_SECRET") - if crocOptions.SharedSecret == "" { - fmt.Printf(`To use croc you need to set a code phrase using your environmental variables: - -export CROC_SECRET="yourcodephrasetouse" - `) - os.Exit(0) - } - } - cr, err := croc.New(crocOptions) if err != nil { return @@ -508,6 +514,26 @@ func receive(c *cli.Context) (err error) { } } + if crocOptions.SharedSecret == "" && os.Getenv("CROC_SECRET") != "" { + crocOptions.SharedSecret = os.Getenv("CROC_SECRET") + } else if runtime.GOOS == "linux" && crocOptions.SharedSecret != "" { + crocOptions.SharedSecret = os.Getenv("CROC_SECRET") + if crocOptions.SharedSecret == "" { + fmt.Printf(`On linux, to receive with croc you either need +to set a code phrase using your environmental variables: + + export CROC_SECRET="****" + croc + +Or you can specify the code phrase when you run croc without +declaring the secret on the command line: + + croc + Enter receive code: **** + `) + os.Exit(0) + } + } if crocOptions.SharedSecret == "" { l, err := readline.NewEx(&readline.Config{ Prompt: "Enter receive code: ", @@ -526,17 +552,6 @@ func receive(c *cli.Context) (err error) { return err } } - // if operating system is UNIX, then use environmental variable to set the code - if runtime.GOOS == "linux" { - crocOptions.SharedSecret = os.Getenv("CROC_SECRET") - if crocOptions.SharedSecret == "" { - fmt.Printf(`To use croc you need to set a code phrase using your environmental variables: - - export CROC_SECRET="yourcodephrasetouse" - `) - os.Exit(0) - } - } cr, err := croc.New(crocOptions) if err != nil {