Gracefully handle non existend receive config file

If croc shall not remember the config, it should not exit if the config
file could not be opened. This is similar to the handling of the send
config.
This commit is contained in:
a1lu 2024-03-30 23:53:17 +01:00
parent 956598c427
commit e599e56415
1 changed files with 15 additions and 7 deletions

View File

@ -153,7 +153,7 @@ func setDebugLevel(c *cli.Context) {
}
}
func getConfigFile() string {
func getSendConfigFile() string {
configFile, err := utils.GetConfigDir()
if err != nil {
log.Error(err)
@ -162,6 +162,15 @@ func getConfigFile() string {
return path.Join(configFile, "send.json")
}
func getReceiveConfigFile() (string, error) {
configFile, err := utils.GetConfigDir()
if err != nil {
log.Error(err)
return "", err
}
return path.Join(configFile, "receive.json"), nil
}
func determinePass(c *cli.Context) (pass string) {
pass = c.String("pass")
b, err := os.ReadFile(pass)
@ -219,7 +228,7 @@ func send(c *cli.Context) (err error) {
} else if crocOptions.RelayAddress6 != models.DEFAULT_RELAY6 {
crocOptions.RelayAddress = ""
}
b, errOpen := os.ReadFile(getConfigFile())
b, errOpen := os.ReadFile(getSendConfigFile())
if errOpen == nil && !c.Bool("remember") {
var rememberedOptions croc.Options
err = json.Unmarshal(b, &rememberedOptions)
@ -355,7 +364,7 @@ func makeTempFileWithString(s string) (fnames []string, err error) {
func saveConfig(c *cli.Context, crocOptions croc.Options) {
if c.Bool("remember") {
configFile := getConfigFile()
configFile := getSendConfigFile()
log.Debug("saving config file")
var bConfig []byte
// if the code wasn't set, don't save it
@ -443,12 +452,11 @@ func receive(c *cli.Context) (err error) {
// load options here
setDebugLevel(c)
configFile, err := utils.GetConfigDir()
if err != nil {
log.Error(err)
configFile, err := getReceiveConfigFile()
if err != nil && c.Bool("remember") {
return
}
configFile = path.Join(configFile, "receive.json")
b, errOpen := os.ReadFile(configFile)
if errOpen == nil && !c.Bool("remember") {
var rememberedOptions croc.Options