From 0d212a558cfd930f5f4d3bc2e6c122e43a19e363 Mon Sep 17 00:00:00 2001 From: Noah Date: Sat, 16 Mar 2024 17:44:01 -0500 Subject: [PATCH] Add --server flag to specify a specific server for activity stats --- main.go | 40 +++++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/main.go b/main.go index 468169a..751fdfc 100644 --- a/main.go +++ b/main.go @@ -1,23 +1,33 @@ package main import ( - "os" "fmt" + "os" + "strings" - //"code.gitea.io/sdk/gitea" + "code.gitea.io/sdk/gitea" "github.com/akamensky/argparse" ) var config Configuration +var Clients map[string]*gitea.Client func 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() { parser := argparse.NewParser("gitivity", "Command line tool to get Gitea statistics") 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"}) + server_option := parser.String("s", "server", &argparse.Options{Required: false, Help: "Specific server to use"}) parse_err := parser.Parse(os.Args) if parse_err != nil { @@ -25,20 +35,28 @@ func main() { return } + Clients = make(map[string]*gitea.Client) config = Configuration{} if err := config.Parse(*config_path); err != nil { panic("Failed to parse configuration file") } - //client, err := gitea.NewClient(*server_name) - //if err != nil { - // fmt.Printf("Failed to create Gitea client! (%s)\n", err) - // os.Exit(1) - //} - //server_version, _, err := client.ServerVersion() - //if err != nil { - // fmt.Printf("Failed to get server version! (%s)\n", err) - //} + for _, server := range config.servers { + if *server_option != "" && strings.ToLower(server.servername) != strings.ToLower(*server_option) { + continue + } + client, err := gitea.NewClient(server.url) + if err != nil { + fmt.Printf("Failed to create Gitea client! (%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() { summary() }