feat: add config
This commit is contained in:
parent
c933393ac5
commit
e06764a689
@ -1,13 +1,55 @@
|
||||
package config
|
||||
|
||||
import "himitsu/totp"
|
||||
import (
|
||||
"himitsu/totp"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/kirsle/configdir"
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
const Version = "v0.0.1"
|
||||
|
||||
var Config = []totp.TOTP{
|
||||
var DefaultConfig = []totp.TOTP{
|
||||
{
|
||||
Label: "Test",
|
||||
Secret: "Test",
|
||||
Account: "Test",
|
||||
Label: "Label",
|
||||
Secret: "Secret",
|
||||
Account: "Account",
|
||||
},
|
||||
}
|
||||
var Config []totp.TOTP
|
||||
|
||||
func Init() {
|
||||
configPath := configdir.LocalConfig("ontake", "himitsu")
|
||||
err := configdir.MakePath(configPath) // Ensure it exists.
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
configFile := filepath.Join(configPath, "totp.yml")
|
||||
|
||||
// Does the file not exist?
|
||||
if _, err = os.Stat(configFile); os.IsNotExist(err) {
|
||||
// Create the new config file.
|
||||
fh, err := os.Create(configFile)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer fh.Close()
|
||||
|
||||
encoder := yaml.NewEncoder(fh)
|
||||
encoder.Encode(&DefaultConfig)
|
||||
Config = DefaultConfig
|
||||
} else {
|
||||
// Load the existing file.
|
||||
fh, err := os.Open(configFile)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
defer fh.Close()
|
||||
|
||||
decoder := yaml.NewDecoder(fh)
|
||||
decoder.Decode(&Config)
|
||||
}
|
||||
}
|
||||
|
2
go.mod
2
go.mod
@ -4,9 +4,11 @@ go 1.22.2
|
||||
|
||||
require (
|
||||
github.com/charmbracelet/bubbletea v0.25.0
|
||||
github.com/kirsle/configdir v0.0.0-20170128060238-e45d2f54772f
|
||||
github.com/lucasb-eyer/go-colorful v1.2.0
|
||||
github.com/muesli/termenv v0.15.2
|
||||
github.com/pquerna/otp v1.4.0
|
||||
gopkg.in/yaml.v3 v3.0.1
|
||||
)
|
||||
|
||||
require (
|
||||
|
6
go.sum
6
go.sum
@ -8,6 +8,8 @@ github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 h1:q2hJAaP1k2
|
||||
github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81/go.mod h1:YynlIjWYF8myEu6sdkwKIvGQq+cOckRm6So2avqoYAk=
|
||||
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/kirsle/configdir v0.0.0-20170128060238-e45d2f54772f h1:dKccXx7xA56UNqOcFIbuqFjAWPVtP688j5QMgmo6OHU=
|
||||
github.com/kirsle/configdir v0.0.0-20170128060238-e45d2f54772f/go.mod h1:4rEELDSfUAlBSyUjPG0JnaNGjf13JySHFeRdD/3dLP0=
|
||||
github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY=
|
||||
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
|
||||
github.com/mattn/go-isatty v0.0.18 h1:DOKFKCQ7FNG2L1rbrmstDN4QVRdS89Nkh85u68Uwp98=
|
||||
@ -46,3 +48,7 @@ golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw=
|
||||
golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U=
|
||||
golang.org/x/text v0.3.8 h1:nAL+RVCQ9uMn3vJZbV+MRnydTJFPf8qqY42YiA6MrqY=
|
||||
golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
|
Loading…
Reference in New Issue
Block a user