mirror of
https://github.com/schollz/croc.git
synced 2024-12-18 11:11:29 +03:00
Merge pull request #685 from a1lu/config_files
Gracefully handle non existend receive config file
This commit is contained in:
commit
8b4ab4c86c
@ -153,7 +153,7 @@ func setDebugLevel(c *cli.Context) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getConfigFile() string {
|
func getSendConfigFile() string {
|
||||||
configFile, err := utils.GetConfigDir()
|
configFile, err := utils.GetConfigDir()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error(err)
|
log.Error(err)
|
||||||
@ -162,6 +162,15 @@ func getConfigFile() string {
|
|||||||
return path.Join(configFile, "send.json")
|
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) {
|
func determinePass(c *cli.Context) (pass string) {
|
||||||
pass = c.String("pass")
|
pass = c.String("pass")
|
||||||
b, err := os.ReadFile(pass)
|
b, err := os.ReadFile(pass)
|
||||||
@ -219,7 +228,7 @@ func send(c *cli.Context) (err error) {
|
|||||||
} else if crocOptions.RelayAddress6 != models.DEFAULT_RELAY6 {
|
} else if crocOptions.RelayAddress6 != models.DEFAULT_RELAY6 {
|
||||||
crocOptions.RelayAddress = ""
|
crocOptions.RelayAddress = ""
|
||||||
}
|
}
|
||||||
b, errOpen := os.ReadFile(getConfigFile())
|
b, errOpen := os.ReadFile(getSendConfigFile())
|
||||||
if errOpen == nil && !c.Bool("remember") {
|
if errOpen == nil && !c.Bool("remember") {
|
||||||
var rememberedOptions croc.Options
|
var rememberedOptions croc.Options
|
||||||
err = json.Unmarshal(b, &rememberedOptions)
|
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) {
|
func saveConfig(c *cli.Context, crocOptions croc.Options) {
|
||||||
if c.Bool("remember") {
|
if c.Bool("remember") {
|
||||||
configFile := getConfigFile()
|
configFile := getSendConfigFile()
|
||||||
log.Debug("saving config file")
|
log.Debug("saving config file")
|
||||||
var bConfig []byte
|
var bConfig []byte
|
||||||
// if the code wasn't set, don't save it
|
// if the code wasn't set, don't save it
|
||||||
@ -443,12 +452,11 @@ func receive(c *cli.Context) (err error) {
|
|||||||
|
|
||||||
// load options here
|
// load options here
|
||||||
setDebugLevel(c)
|
setDebugLevel(c)
|
||||||
configFile, err := utils.GetConfigDir()
|
|
||||||
if err != nil {
|
configFile, err := getReceiveConfigFile()
|
||||||
log.Error(err)
|
if err != nil && c.Bool("remember") {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
configFile = path.Join(configFile, "receive.json")
|
|
||||||
b, errOpen := os.ReadFile(configFile)
|
b, errOpen := os.ReadFile(configFile)
|
||||||
if errOpen == nil && !c.Bool("remember") {
|
if errOpen == nil && !c.Bool("remember") {
|
||||||
var rememberedOptions croc.Options
|
var rememberedOptions croc.Options
|
||||||
|
@ -32,16 +32,15 @@ const NbBytesWords = 4
|
|||||||
|
|
||||||
// Get or create home directory
|
// Get or create home directory
|
||||||
func GetConfigDir() (homedir string, err error) {
|
func GetConfigDir() (homedir string, err error) {
|
||||||
homedir, err = os.UserHomeDir()
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if envHomedir, isSet := os.LookupEnv("CROC_CONFIG_DIR"); isSet {
|
if envHomedir, isSet := os.LookupEnv("CROC_CONFIG_DIR"); isSet {
|
||||||
homedir = envHomedir
|
homedir = envHomedir
|
||||||
} else if xdgConfigHome, isSet := os.LookupEnv("XDG_CONFIG_HOME"); isSet {
|
} else if xdgConfigHome, isSet := os.LookupEnv("XDG_CONFIG_HOME"); isSet {
|
||||||
homedir = path.Join(xdgConfigHome, "croc")
|
homedir = path.Join(xdgConfigHome, "croc")
|
||||||
} else {
|
} else {
|
||||||
|
homedir, err = os.UserHomeDir()
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
homedir = path.Join(homedir, ".config", "croc")
|
homedir = path.Join(homedir, ".config", "croc")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user