From eb032481b99ee4f896a7facf2e0dcc6d1dcd85e8 Mon Sep 17 00:00:00 2001 From: Daniel Date: Mon, 15 Jun 2020 12:09:14 +0100 Subject: [PATCH 1/3] Automatically create the default log directory on Linux if required --- README.md | 1 + clipper.go | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/README.md b/README.md index 78273a5..a55eb13 100644 --- a/README.md +++ b/README.md @@ -188,6 +188,7 @@ On Linux: systemctl --user stop clipper.service systemctl --user disable clipper.service sudo rm /usr/local/bin/clipper + rm -r ~/.config/clipper To kill a manually-launched instance of Clipper, just hit Control+C in the terminal where it is running. diff --git a/clipper.go b/clipper.go index 28fea9e..3f71965 100644 --- a/clipper.go +++ b/clipper.go @@ -35,6 +35,7 @@ import ( "os/exec" "os/signal" "os/user" + "path" "path/filepath" "regexp" "runtime" @@ -208,6 +209,14 @@ func mergeSettings() { settings.Logfile = config.Logfile } else { settings.Logfile = defaults.Logfile + if runtime.GOOS == "linux" { + home, err := os.UserHomeDir() + if err != nil { + log.Fatal(err) + } + configDir := path.Join(home, ".config/clipper/logs") + os.MkdirAll(configDir, 0700) + } } if flags.Port.provided || config.Port.provided { if isPath(settings.Address.value) { From 43a0654982c6e88c544fa2c8515ce3d642f87784 Mon Sep 17 00:00:00 2001 From: Daniel Date: Mon, 15 Jun 2020 14:19:25 +0100 Subject: [PATCH 2/3] Use pathByExpandingTildeInPath to get configuration directory --- clipper.go | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/clipper.go b/clipper.go index 3f71965..687f436 100644 --- a/clipper.go +++ b/clipper.go @@ -35,7 +35,6 @@ import ( "os/exec" "os/signal" "os/user" - "path" "path/filepath" "regexp" "runtime" @@ -210,11 +209,7 @@ func mergeSettings() { } else { settings.Logfile = defaults.Logfile if runtime.GOOS == "linux" { - home, err := os.UserHomeDir() - if err != nil { - log.Fatal(err) - } - configDir := path.Join(home, ".config/clipper/logs") + configDir := pathByExpandingTildeInPath(filepath.Dir(defaults.Logfile.value)) os.MkdirAll(configDir, 0700) } } From f52e51992fadb0777353dada5631fcc63f52a941 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 16 Jun 2020 20:52:18 +0100 Subject: [PATCH 3/3] Create chosen log directory on Linux if it doesn't exist --- clipper.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/clipper.go b/clipper.go index 687f436..57c759b 100644 --- a/clipper.go +++ b/clipper.go @@ -208,10 +208,6 @@ func mergeSettings() { settings.Logfile = config.Logfile } else { settings.Logfile = defaults.Logfile - if runtime.GOOS == "linux" { - configDir := pathByExpandingTildeInPath(filepath.Dir(defaults.Logfile.value)) - os.MkdirAll(configDir, 0700) - } } if flags.Port.provided || config.Port.provided { if isPath(settings.Address.value) { @@ -270,6 +266,10 @@ func main() { // Merge flags -> config -> defaults. mergeSettings() + if runtime.GOOS == "linux" { + configDir := expandPath(filepath.Dir(settings.Logfile.value)) + os.MkdirAll(configDir, 0700) + } expandedPath := expandPath(settings.Logfile.value) outfile, err := os.OpenFile(expandedPath, os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0600) if err != nil {