Add --server flag to specify a specific server for activity stats

This commit is contained in:
Noah 2024-03-16 17:44:01 -05:00
parent 70597d4b1f
commit 0d212a558c

40
main.go
View File

@ -1,23 +1,33 @@
package main package main
import ( import (
"os"
"fmt" "fmt"
"os"
"strings"
//"code.gitea.io/sdk/gitea" "code.gitea.io/sdk/gitea"
"github.com/akamensky/argparse" "github.com/akamensky/argparse"
) )
var config Configuration var config Configuration
var Clients map[string]*gitea.Client
func summary() { func summary() {
fmt.Println("Summary") fmt.Println("Summary")
for name, client := range Clients {
server_version, _, err := client.ServerVersion()
if err != nil {
fmt.Printf("Failed to get server version! (%s)\n", err)
}
fmt.Printf("%s - %s\n", name, server_version)
}
} }
func main() { func main() {
parser := argparse.NewParser("gitivity", "Command line tool to get Gitea statistics") parser := argparse.NewParser("gitivity", "Command line tool to get Gitea statistics")
Summary := parser.NewCommand("summary", "Generate a summary of a user's activity.") Summary := parser.NewCommand("summary", "Generate a summary of a user's activity.")
config_path := parser.String("c", "config", &argparse.Options{Required: false, Help: "Configuration file", Default: "./config.lua"}) config_path := parser.String("c", "config", &argparse.Options{Required: false, Help: "Configuration file", Default: "./config.lua"})
server_option := parser.String("s", "server", &argparse.Options{Required: false, Help: "Specific server to use"})
parse_err := parser.Parse(os.Args) parse_err := parser.Parse(os.Args)
if parse_err != nil { if parse_err != nil {
@ -25,20 +35,28 @@ func main() {
return return
} }
Clients = make(map[string]*gitea.Client)
config = Configuration{} config = Configuration{}
if err := config.Parse(*config_path); err != nil { if err := config.Parse(*config_path); err != nil {
panic("Failed to parse configuration file") panic("Failed to parse configuration file")
} }
//client, err := gitea.NewClient(*server_name) for _, server := range config.servers {
//if err != nil { if *server_option != "" && strings.ToLower(server.servername) != strings.ToLower(*server_option) {
// fmt.Printf("Failed to create Gitea client! (%s)\n", err) continue
// os.Exit(1) }
//} client, err := gitea.NewClient(server.url)
//server_version, _, err := client.ServerVersion() if err != nil {
//if err != nil { fmt.Printf("Failed to create Gitea client! (%s)\n", err)
// fmt.Printf("Failed to get server version! (%s)\n", err) os.Exit(1)
//} }
Clients[server.servername] = client
}
if len(Clients) == 0 {
println("No servers configured / specified")
os.Exit(0)
}
if Summary.Happened() { if Summary.Happened() {
summary() summary()
} }