summaryrefslogtreecommitdiff
path: root/pkg/systray/config.go
diff options
context:
space:
mode:
authorkali kaneko (leap communications) <kali@leap.se>2020-05-29 22:09:15 +0200
committerkali kaneko (leap communications) <kali@leap.se>2020-06-12 20:02:30 +0200
commit719413cad922e1d34f2ea495bae0165cae53b22f (patch)
tree2018091e2263b4bd69611a4f284e4d2febf36ec9 /pkg/systray/config.go
parent42593eb08464ace7be4d5dd088a48720591575c3 (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.go108
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)
-}