From bea32af5d45702e5608d347bf2bf6314d899f2e0 Mon Sep 17 00:00:00 2001 From: Ruben Pollan Date: Sat, 12 Jan 2019 18:18:23 +0100 Subject: [feat] Reorganize code Let's use a more structured folder system: https://github.com/golang-standards/project-layout - Resolves: #99 --- pkg/config/darwin.go | 24 ++++++++++++++++++++++++ pkg/config/logger.go | 31 +++++++++++++++++++++++++++++++ pkg/config/unix.go | 24 ++++++++++++++++++++++++ pkg/config/windows.go | 22 ++++++++++++++++++++++ 4 files changed, 101 insertions(+) create mode 100644 pkg/config/darwin.go create mode 100644 pkg/config/logger.go create mode 100644 pkg/config/unix.go create mode 100644 pkg/config/windows.go (limited to 'pkg/config') diff --git a/pkg/config/darwin.go b/pkg/config/darwin.go new file mode 100644 index 0000000..123060c --- /dev/null +++ b/pkg/config/darwin.go @@ -0,0 +1,24 @@ +// +build darwin +// Copyright (C) 2018 LEAP +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +package config + +import ( + "os" +) + +// Path for the config files +var Path = os.Getenv("HOME") + "/Library/Preferences/leap" diff --git a/pkg/config/logger.go b/pkg/config/logger.go new file mode 100644 index 0000000..09d96b7 --- /dev/null +++ b/pkg/config/logger.go @@ -0,0 +1,31 @@ +// Copyright (C) 2018 LEAP +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +package config + +import ( + "io" + "log" + "os" +) + +//ConfigureLogger to write logs into a file as well as the stderr +func ConfigureLogger(logPath string) (io.Closer, error) { + logFile, err := os.OpenFile(logPath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) + if err == nil { + log.SetOutput(io.MultiWriter(logFile, os.Stderr)) + } + return logFile, err +} diff --git a/pkg/config/unix.go b/pkg/config/unix.go new file mode 100644 index 0000000..7425f5b --- /dev/null +++ b/pkg/config/unix.go @@ -0,0 +1,24 @@ +// +build !windows,!darwin +// Copyright (C) 2018 LEAP +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +package config + +import ( + "os" +) + +// Path for the config files +var Path = os.Getenv("HOME") + "/.config/leap" diff --git a/pkg/config/windows.go b/pkg/config/windows.go new file mode 100644 index 0000000..8977842 --- /dev/null +++ b/pkg/config/windows.go @@ -0,0 +1,22 @@ +// +build windows +// Copyright (C) 2018 LEAP +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +package config + +import "os" + +// Path for the config files +var Path = os.Getenv("LOCALAPPDATA") + "\\leap" -- cgit v1.2.3