fix: set absolute path to the credentials file

When creating the configuration file during the initialisation process
calculate the absolute path to the credentials file instead of the
relative path.
This commit is contained in:
Dan Anglin 2024-06-29 16:02:19 +01:00
parent c8892a6535
commit b03b3c31cc
Signed by: dananglin
GPG key ID: 0C1D44CFBEE68638
2 changed files with 41 additions and 5 deletions

View file

@ -71,7 +71,15 @@ func SaveDefaultConfigToFile(configDir string) error {
} }
defer file.Close() defer file.Close()
config := defaultConfig(configDir) config := defaultConfig()
credentialsFilePath, err := utilities.AbsolutePath(defaultCredentialsConfigFile(configDir))
if err != nil {
return fmt.Errorf("unable to calculate the path to the credentials file: %w", err)
}
config.CredentialsFile = credentialsFilePath
encoder := json.NewEncoder(file) encoder := json.NewEncoder(file)
encoder.SetIndent("", " ") encoder.SetIndent("", " ")
@ -86,11 +94,9 @@ func configFile(configDir string) string {
return filepath.Join(utilities.CalculateConfigDir(configDir), configFileName) return filepath.Join(utilities.CalculateConfigDir(configDir), configFileName)
} }
func defaultConfig(configDir string) Config { func defaultConfig() Config {
credentialsFilePath := defaultCredentialsConfigFile(configDir)
return Config{ return Config{
CredentialsFile: credentialsFilePath, CredentialsFile: "",
CacheDirectory: "", CacheDirectory: "",
HTTP: HTTPConfig{ HTTP: HTTPConfig{
Timeout: 5, Timeout: 5,

View file

@ -0,0 +1,30 @@
// SPDX-FileCopyrightText: 2024 Dan Anglin <d.n.i.anglin@gmail.com>
//
// SPDX-License-Identifier: GPL-3.0-or-later
package utilities
import (
"fmt"
"os"
"path/filepath"
"strings"
)
func AbsolutePath(path string) (string, error) {
if strings.HasPrefix(path, "~") {
homeDir, err := os.UserHomeDir()
if err != nil {
return "", fmt.Errorf("unable to get user's home directory; %w", err)
}
path = filepath.Join(homeDir, path[1:])
}
absPath, err := filepath.Abs(path)
if err != nil {
return "", fmt.Errorf("unable to get the absolute path: %w", err)
}
return absPath, nil
}