diff options
author | kali kaneko (leap communications) <kali@leap.se> | 2020-05-29 22:09:15 +0200 |
---|---|---|
committer | kali kaneko (leap communications) <kali@leap.se> | 2020-06-12 20:02:30 +0200 |
commit | 719413cad922e1d34f2ea495bae0165cae53b22f (patch) | |
tree | 2018091e2263b4bd69611a4f284e4d2febf36ec9 /pkg/systray/config.go | |
parent | 42593eb08464ace7be4d5dd088a48720591575c3 (diff) |
[refactor] copy over systray to new package
- delete gtk systray module
Diffstat (limited to 'pkg/systray/config.go')
-rw-r--r-- | pkg/systray/config.go | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/pkg/systray/config.go b/pkg/systray/config.go deleted file mode 100644 index 75a4a98..0000000 --- a/pkg/systray/config.go +++ /dev/null @@ -1,108 +0,0 @@ -// 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 <http://www.gnu.org/licenses/>. - -package systray - -import ( - "encoding/json" - "os" - "path" - "time" - - "0xacab.org/leap/bitmask-vpn/pkg/config" - "golang.org/x/text/message" -) - -const ( - oneDay = time.Hour * 24 - oneMonth = oneDay * 30 -) - -var ( - configPath = path.Join(config.Path, "systray.json") -) - -// Config holds the configuration of the systray -type Config struct { - file struct { - LastNotification time.Time - Donated time.Time - SelectGateway bool - Obfs4 bool - UserStoppedVPN bool - DisableAustostart bool - } - SelectGateway bool - Obfs4 bool - DisableAustostart bool - StartVPN bool - Version string - Printer *message.Printer -} - -// ParseConfig reads the configuration from the configuration file -func ParseConfig() *Config { - var conf Config - - f, err := os.Open(configPath) - if err != nil { - conf.save() - } else { - defer f.Close() - dec := json.NewDecoder(f) - err = dec.Decode(&conf.file) - } - - conf.SelectGateway = conf.file.SelectGateway - conf.Obfs4 = conf.file.Obfs4 - conf.DisableAustostart = conf.file.DisableAustostart - conf.StartVPN = !conf.file.UserStoppedVPN - return &conf -} - -func (c *Config) setUserStoppedVPN(vpnStopped bool) error { - c.file.UserStoppedVPN = vpnStopped - return c.save() -} - -func (c *Config) hasDonated() bool { - return c.file.Donated.Add(oneMonth).After(time.Now()) -} - -func (c *Config) needsNotification() bool { - return !c.hasDonated() && c.file.LastNotification.Add(oneDay).Before(time.Now()) -} - -func (c *Config) setNotification() error { - c.file.LastNotification = time.Now() - return c.save() -} - -func (c *Config) setDonated() error { - c.file.Donated = time.Now() - return c.save() -} - -func (c *Config) save() error { - f, err := os.Create(configPath) - if err != nil { - return err - } - defer f.Close() - - enc := json.NewEncoder(f) - enc.SetIndent("", " ") - return enc.Encode(c.file) -} |