reorg project

This commit is contained in:
Celogeek 2021-12-15 14:16:45 +01:00
parent 326fe8d919
commit 8a4002c3b2
Signed by: celogeek
GPG Key ID: E6B7BDCFC446233A
7 changed files with 100 additions and 104 deletions

9
cmd/piwigo-cli/main.go Normal file
View File

@ -0,0 +1,9 @@
package main
import (
"github.com/celogeek/piwigo-cli/internal/piwigocli"
)
func main() {
piwigocli.Run()
}

View File

@ -1,4 +1,4 @@
package main package piwigocli
import ( import (
"os" "os"
@ -12,7 +12,7 @@ var options Options
var parser = flags.NewParser(&options, flags.Default) var parser = flags.NewParser(&options, flags.Default)
func main() { func Run() {
if _, err := parser.Parse(); err != nil { if _, err := parser.Parse(); err != nil {
switch flagsErr := err.(type) { switch flagsErr := err.(type) {
case flags.ErrorType: case flags.ErrorType:

View File

@ -0,0 +1,12 @@
package piwigocli
type SessionGroup struct {
Login LoginCommand `command:"login" description:"Initialize a connection to a piwigo instance"`
Status StatusCommand `command:"status" description:"Get the status of your session"`
}
var sessionGroup SessionGroup
func init() {
parser.AddCommand("session", "Session management", "", &sessionGroup)
}

View File

@ -0,0 +1,41 @@
package piwigocli
import (
"fmt"
"net/url"
"github.com/celogeek/piwigo-cli/internal/piwigo"
)
type LoginCommand struct {
Url string `short:"u" long:"url" description:"Url of the instance"`
Login string `short:"l" long:"login" description:"Login"`
Password string `short:"p" long:"password" description:"Password"`
}
func (c *LoginCommand) Execute(args []string) error {
fmt.Printf("Login on %s...\n", c.Url)
Piwigo := piwigo.Piwigo{
Url: c.Url,
}
result := false
err := Piwigo.Post("pwg.session.login", &url.Values{
"username": []string{c.Login},
"password": []string{c.Password},
}, &result)
if err != nil {
return err
}
err = Piwigo.SaveConfig()
if err != nil {
return err
}
fmt.Println("Login succeed!")
return nil
}

View File

@ -0,0 +1,36 @@
package piwigocli
import (
"fmt"
"net/url"
"github.com/celogeek/piwigo-cli/internal/piwigo"
)
type StatusCommand struct {
}
type StatusResponse struct {
User string `json:"username"`
Role string `json:"status"`
Version string `json:"version"`
}
func (c *StatusCommand) Execute(args []string) error {
fmt.Println("Status:")
Piwigo := piwigo.Piwigo{}
if err := Piwigo.LoadConfig(); err != nil {
return err
}
resp := &StatusResponse{}
if err := Piwigo.Post("pwg.session.getStatus", &url.Values{}, &resp); err != nil {
return err
}
fmt.Printf(" Version: %s\n", resp.Version)
fmt.Printf(" User : %s\n", resp.User)
fmt.Printf(" Role : %s\n", resp.Role)
return nil
}

View File

@ -1,80 +0,0 @@
package main
import (
"fmt"
"net/url"
"github.com/celogeek/piwigo-cli/internal/piwigo"
)
type LoginCommand struct {
Url string `short:"u" long:"url" description:"Url of the instance"`
Login string `short:"l" long:"login" description:"Login"`
Password string `short:"p" long:"password" description:"Password"`
}
type StatusCommand struct {
}
type SessionGroup struct {
Login LoginCommand `command:"login" description:"Initialize a connection to a piwigo instance"`
Status StatusCommand `command:"status" description:"Get the status of your session"`
}
var sessionGroup SessionGroup
func (c *LoginCommand) Execute(args []string) error {
fmt.Printf("Login on %s...\n", c.Url)
Piwigo := piwigo.Piwigo{
Url: c.Url,
}
result := false
err := Piwigo.Post("pwg.session.login", &url.Values{
"username": []string{c.Login},
"password": []string{c.Password},
}, &result)
if err != nil {
return err
}
err = Piwigo.SaveConfig()
if err != nil {
return err
}
fmt.Println("Login succeed!")
return nil
}
type StatusResponse struct {
User string `json:"username"`
Role string `json:"status"`
Version string `json:"version"`
}
func (c *StatusCommand) Execute(args []string) error {
fmt.Println("Status:")
Piwigo := piwigo.Piwigo{}
if err := Piwigo.LoadConfig(); err != nil {
return err
}
resp := &StatusResponse{}
if err := Piwigo.Post("pwg.session.getStatus", &url.Values{}, &resp); err != nil {
return err
}
fmt.Printf(" Version: %s\n", resp.Version)
fmt.Printf(" User : %s\n", resp.User)
fmt.Printf(" Role : %s\n", resp.Role)
return nil
}
func init() {
parser.AddCommand("session", "Session management", "", &sessionGroup)
}

22
tags.go
View File

@ -1,22 +0,0 @@
package main
import "fmt"
type TagsCommand struct {
All bool `short:"a" long:"all" description:"Get all available tags"`
}
var tagsCommand TagsCommand
func (c *TagsCommand) Execute(args []string) error {
fmt.Printf("List tags %v\n", c.All)
return nil
}
func init() {
parser.AddCommand("tags",
"List tags",
"List tags",
&tagsCommand)
}