Fix config.yml not at root level in container
- commit
- dfe4d5649eb2744fa73aaa8950df3e2837023253
- author
- bnema · · 2023-11-03 09:42 UTC
- parent
- 7882325
- signature
- unsigned
3 files · +16 -23
M .gitignore +2 -1
| @@ -11,4 +11,5 @@ main | |||
| 11 | 11 | gordon | |
| 12 | 12 | dist/ | |
| 13 | 13 | data/ | |
| 14 | - | setup.sh⏎̸ | |
| 14 | + | setup.sh | |
| 15 | + | .iscontainer⏎̸ | |
| @@ -11,4 +11,5 @@ main | |||||
| 11 | gordon | 11 | gordon | ||
| 12 | dist/ | 12 | dist/ | ||
| 13 | data/ | 13 | data/ | ||
| 14 | - | setup.sh⏎̸ | 14 | + | setup.sh |
| 15 | + | .iscontainer⏎̸ | |||
M cmd/cli/main.go +0 -9
| @@ -8,7 +8,6 @@ import ( | |||
| 8 | 8 | "github.com/bnema/gordon/internal/cli/cmd" | |
| 9 | 9 | "github.com/bnema/gordon/internal/common" | |
| 10 | 10 | "github.com/bnema/gordon/internal/server" | |
| 11 | - | "github.com/bnema/gordon/pkg/docker" | |
| 12 | 11 | "github.com/spf13/cobra" | |
| 13 | 12 | ) | |
| 14 | 13 | ||
| @@ -45,13 +44,5 @@ func main() { | |||
| 45 | 44 | // Set the BuildVersion | |
| 46 | 45 | s.Config.Build.BuildVersion = build | |
| 47 | 46 | ||
| 48 | - | inContainer, err := docker.IsRunningInContainer() | |
| 49 | - | if err != nil { | |
| 50 | - | fmt.Printf("Error checking if running in a container: %s\n", err) | |
| 51 | - | } else if inContainer { | |
| 52 | - | fmt.Println("Running inside a container.") | |
| 53 | - | } else { | |
| 54 | - | fmt.Println("Not running inside a container.") | |
| 55 | - | } | |
| 56 | 47 | Execute(a, s) | |
| 57 | 48 | } | |
| @@ -8,7 +8,6 @@ import ( | |||||
| 8 | "github.com/bnema/gordon/internal/cli/cmd" | 8 | "github.com/bnema/gordon/internal/cli/cmd" | ||
| 9 | "github.com/bnema/gordon/internal/common" | 9 | "github.com/bnema/gordon/internal/common" | ||
| 10 | "github.com/bnema/gordon/internal/server" | 10 | "github.com/bnema/gordon/internal/server" | ||
| 11 | - | "github.com/bnema/gordon/pkg/docker" | |||
| 12 | "github.com/spf13/cobra" | 11 | "github.com/spf13/cobra" | ||
| 13 | ) | 12 | ) | ||
| 14 | 13 | ||||
| @@ -45,13 +44,5 @@ func main() { | |||||
| 45 | // Set the BuildVersion | 44 | // Set the BuildVersion | ||
| 46 | s.Config.Build.BuildVersion = build | 45 | s.Config.Build.BuildVersion = build | ||
| 47 | 46 | ||||
| 48 | - | inContainer, err := docker.IsRunningInContainer() | |||
| 49 | - | if err != nil { | |||
| 50 | - | fmt.Printf("Error checking if running in a container: %s\n", err) | |||
| 51 | - | } else if inContainer { | |||
| 52 | - | fmt.Println("Running inside a container.") | |||
| 53 | - | } else { | |||
| 54 | - | fmt.Println("Not running inside a container.") | |||
| 55 | - | } | |||
| 56 | Execute(a, s) | 47 | Execute(a, s) | ||
| 57 | } | 48 | } | ||
M internal/common/initconfig.go +14 -13
| @@ -5,10 +5,10 @@ import ( | |||
| 5 | 5 | "fmt" | |
| 6 | 6 | "io/fs" | |
| 7 | 7 | "os" | |
| 8 | - | "os/user" | |
| 9 | 8 | "path/filepath" | |
| 10 | 9 | "runtime" | |
| 11 | 10 | ||
| 11 | + | "github.com/bnema/gordon/pkg/docker" | |
| 12 | 12 | "github.com/bnema/gordon/pkg/parser" | |
| 13 | 13 | ) | |
| 14 | 14 | ||
| @@ -54,27 +54,28 @@ var ( | |||
| 54 | 54 | podmansock = "/run/user/1000/podman/podman.sock" | |
| 55 | 55 | ) | |
| 56 | 56 | ||
| 57 | - | func isMaybeRunningInDocker() bool { // Thanks Pocketbase | |
| 58 | - | _, err := os.Stat("/.dockerenv") | |
| 59 | - | return err == nil | |
| 60 | - | } | |
| 61 | - | ||
| 62 | 57 | func getConfigDir() (string, error) { | |
| 63 | - | usr, err := user.Current() | |
| 64 | - | if err != nil { | |
| 65 | - | return "", fmt.Errorf("error getting user's home directory: %w", err) | |
| 58 | + | if inContainer, err := docker.IsRunningInContainer(); err != nil { | |
| 59 | + | return "", fmt.Errorf("error checking if running in a container: %w", err) | |
| 60 | + | } else if inContainer { | |
| 61 | + | // Return the path for configuration inside the container | |
| 62 | + | return "/.config/Gordon", nil | |
| 66 | 63 | } | |
| 67 | 64 | ||
| 68 | - | if isMaybeRunningInDocker() { | |
| 69 | - | return ".", nil // The directory where the binary is located | |
| 65 | + | // For non-container environments, determine the user's home directory | |
| 66 | + | homeDir, err := os.UserHomeDir() | |
| 67 | + | if err != nil { | |
| 68 | + | return "", fmt.Errorf("error getting user's home directory: %w", err) | |
| 70 | 69 | } | |
| 71 | 70 | ||
| 71 | + | // Determine the configuration directory based on the operating system | |
| 72 | 72 | var configDir string | |
| 73 | 73 | if runtime.GOOS == "windows" { | |
| 74 | - | configDir = filepath.Join(usr.HomeDir, "AppData", "Roaming", "Gordon") | |
| 74 | + | configDir = filepath.Join(homeDir, "AppData", "Roaming", "Gordon") | |
| 75 | 75 | } else { | |
| 76 | - | configDir = filepath.Join(usr.HomeDir, ".config", "Gordon") | |
| 76 | + | configDir = filepath.Join(homeDir, ".config", "Gordon") | |
| 77 | 77 | } | |
| 78 | + | ||
| 78 | 79 | return configDir, nil | |
| 79 | 80 | } | |
| 80 | 81 | ||
| @@ -5,10 +5,10 @@ import ( | |||||
| 5 | "fmt" | 5 | "fmt" | ||
| 6 | "io/fs" | 6 | "io/fs" | ||
| 7 | "os" | 7 | "os" | ||
| 8 | - | "os/user" | |||
| 9 | "path/filepath" | 8 | "path/filepath" | ||
| 10 | "runtime" | 9 | "runtime" | ||
| 11 | 10 | ||||
| 11 | + | "github.com/bnema/gordon/pkg/docker" | |||
| 12 | "github.com/bnema/gordon/pkg/parser" | 12 | "github.com/bnema/gordon/pkg/parser" | ||
| 13 | ) | 13 | ) | ||
| 14 | 14 | ||||
| @@ -54,27 +54,28 @@ var ( | |||||
| 54 | podmansock = "/run/user/1000/podman/podman.sock" | 54 | podmansock = "/run/user/1000/podman/podman.sock" | ||
| 55 | ) | 55 | ) | ||
| 56 | 56 | ||||
| 57 | - | func isMaybeRunningInDocker() bool { // Thanks Pocketbase | |||
| 58 | - | _, err := os.Stat("/.dockerenv") | |||
| 59 | - | return err == nil | |||
| 60 | - | } | |||
| 61 | - | ||||
| 62 | func getConfigDir() (string, error) { | 57 | func getConfigDir() (string, error) { | ||
| 63 | - | usr, err := user.Current() | 58 | + | if inContainer, err := docker.IsRunningInContainer(); err != nil { |
| 64 | - | if err != nil { | 59 | + | return "", fmt.Errorf("error checking if running in a container: %w", err) |
| 65 | - | return "", fmt.Errorf("error getting user's home directory: %w", err) | 60 | + | } else if inContainer { |
| 61 | + | // Return the path for configuration inside the container | |||
| 62 | + | return "/.config/Gordon", nil | |||
| 66 | } | 63 | } | ||
| 67 | 64 | ||||
| 68 | - | if isMaybeRunningInDocker() { | 65 | + | // For non-container environments, determine the user's home directory |
| 69 | - | return ".", nil // The directory where the binary is located | 66 | + | homeDir, err := os.UserHomeDir() |
| 67 | + | if err != nil { | |||
| 68 | + | return "", fmt.Errorf("error getting user's home directory: %w", err) | |||
| 70 | } | 69 | } | ||
| 71 | 70 | ||||
| 71 | + | // Determine the configuration directory based on the operating system | |||
| 72 | var configDir string | 72 | var configDir string | ||
| 73 | if runtime.GOOS == "windows" { | 73 | if runtime.GOOS == "windows" { | ||
| 74 | - | configDir = filepath.Join(usr.HomeDir, "AppData", "Roaming", "Gordon") | 74 | + | configDir = filepath.Join(homeDir, "AppData", "Roaming", "Gordon") |
| 75 | } else { | 75 | } else { | ||
| 76 | - | configDir = filepath.Join(usr.HomeDir, ".config", "Gordon") | 76 | + | configDir = filepath.Join(homeDir, ".config", "Gordon") |
| 77 | } | 77 | } | ||
| 78 | + | ||||
| 78 | return configDir, nil | 79 | return configDir, nil | ||
| 79 | } | 80 | } | ||
| 80 | 81 | ||||