fix load config

This commit is contained in:
Celogeek 2021-12-14 13:44:07 +01:00
parent b902080534
commit f38ffe5ac8
Signed by: celogeek
GPG Key ID: E6B7BDCFC446233A
3 changed files with 43 additions and 8 deletions

14
helper.go Normal file
View File

@ -0,0 +1,14 @@
package main
import (
"encoding/json"
"fmt"
)
func dumpResponse(v interface{}) (err error) {
b, err := json.MarshalIndent(v, "", " ")
if err == nil {
fmt.Println(string(b))
}
return
}

View File

@ -2,14 +2,15 @@ package piwigo
import (
"encoding/json"
"fmt"
"errors"
"os"
"strings"
)
func (p *Piwigo) ConfigPath() (configPath string, err error) {
configDir, err := os.UserConfigDir()
if err == nil {
configPath = fmt.Sprintf("%s/piwigo-cli", configDir)
configPath = strings.Join([]string{configDir, "piwigo-cli"}, "/")
}
return
}
@ -30,7 +31,7 @@ func (p *Piwigo) SaveConfig() (err error) {
return
}
configFile := fmt.Sprintf("%s/config.json", configPath)
configFile := strings.Join([]string{configPath, "config.json"}, "/")
b, err := json.MarshalIndent(p, "", " ")
if err != nil {
@ -47,14 +48,19 @@ func (p *Piwigo) LoadConfig() (err error) {
return
}
configFile := fmt.Sprintf("%s/config.json", configPath)
configFile := strings.Join([]string{configPath, "config.json"}, "/")
b, err := os.ReadFile(configFile)
if os.IsNotExist(err) {
err = nil
if err != nil {
if os.IsNotExist(err) {
err = errors.New("missing configuration file")
}
return
}
if err != nil {
err = json.Unmarshal(b, p)
err = json.Unmarshal(b, &p)
if p.Url == "" || p.Token == "" {
err = errors.New("missing configuration url or token")
}
return
}

View File

@ -50,6 +50,21 @@ func (c *LoginCommand) Execute(args []string) error {
return nil
}
func (c *StatusCommand) Execute(args []string) error {
fmt.Println("Status:")
Piwigo := piwigo.Piwigo{}
if err := Piwigo.LoadConfig(); err != nil {
return err
}
var resp map[string]interface{}
Piwigo.Post("pwg.session.getStatus", &url.Values{}, &resp)
dumpResponse(resp)
return nil
}
func init() {
parser.AddCommand("session", "Session management", "", &sessionGroup)
}