migrate collaboration from urfave/cli to spf13/cobra

Signed-off-by: Christian Richter <c.richter@opencloud.eu>
This commit is contained in:
Christian Richter
2025-12-15 16:40:25 +01:00
committed by Florian Schade
parent f4526d4bc8
commit e6114853ea
5 changed files with 54 additions and 35 deletions
@@ -0,0 +1,19 @@
package main
import (
"context"
"os"
"os/signal"
"syscall"
"github.com/opencloud-eu/opencloud/services/activitylog/pkg/command"
"github.com/opencloud-eu/opencloud/services/activitylog/pkg/config/defaults"
)
func main() {
cfg := defaults.DefaultConfig()
cfg.Context, _ = signal.NotifyContext(context.Background(), syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT, syscall.SIGHUP)
if err := command.Execute(cfg); err != nil {
os.Exit(1)
}
}
+8 -8
View File
@@ -8,19 +8,19 @@ import (
"github.com/opencloud-eu/opencloud/services/collaboration/pkg/config" "github.com/opencloud-eu/opencloud/services/collaboration/pkg/config"
"github.com/opencloud-eu/opencloud/services/collaboration/pkg/config/parser" "github.com/opencloud-eu/opencloud/services/collaboration/pkg/config/parser"
"github.com/opencloud-eu/opencloud/services/collaboration/pkg/logging" "github.com/opencloud-eu/opencloud/services/collaboration/pkg/logging"
"github.com/urfave/cli/v2"
"github.com/spf13/cobra"
) )
// Health is the entrypoint for the health command. // Health is the entrypoint for the health command.
func Health(cfg *config.Config) *cli.Command { func Health(cfg *config.Config) *cobra.Command {
return &cli.Command{ return &cobra.Command{
Name: "health", Use: "health",
Usage: "check health status", Short: "check health status",
Category: "info", PreRunE: func(cmd *cobra.Command, args []string) error {
Before: func(c *cli.Context) error {
return configlog.ReturnError(parser.ParseConfig(cfg)) return configlog.ReturnError(parser.ParseConfig(cfg))
}, },
Action: func(c *cli.Context) error { RunE: func(cmd *cobra.Command, args []string) error {
logger := logging.Configure(cfg.Service.Name, cfg.Log) logger := logging.Configure(cfg.Service.Name, cfg.Log)
resp, err := http.Get( resp, err := http.Get(
+10 -8
View File
@@ -5,12 +5,13 @@ import (
"github.com/opencloud-eu/opencloud/pkg/clihelper" "github.com/opencloud-eu/opencloud/pkg/clihelper"
"github.com/opencloud-eu/opencloud/services/collaboration/pkg/config" "github.com/opencloud-eu/opencloud/services/collaboration/pkg/config"
"github.com/urfave/cli/v2"
"github.com/spf13/cobra"
) )
// GetCommands provides all commands for this service // GetCommands provides all commands for this service
func GetCommands(cfg *config.Config) cli.Commands { func GetCommands(cfg *config.Config) []*cobra.Command {
return []*cli.Command{ return []*cobra.Command{
Server(cfg), Server(cfg),
Health(cfg), Health(cfg),
Version(cfg), Version(cfg),
@@ -19,11 +20,12 @@ func GetCommands(cfg *config.Config) cli.Commands {
// Execute is the entry point for the antivirus command. // Execute is the entry point for the antivirus command.
func Execute(cfg *config.Config) error { func Execute(cfg *config.Config) error {
app := clihelper.DefaultApp(&cli.App{ app := clihelper.DefaultAppCobra(&cobra.Command{
Name: "collaboration", Use: "collaboration",
Usage: "Serve WOPI for OpenCloud", Short: "Serve WOPI for OpenCloud",
Commands: GetCommands(cfg),
}) })
app.AddCommand(GetCommands(cfg)...)
app.SetArgs(os.Args[1:])
return app.RunContext(cfg.Context, os.Args) return app.ExecuteContext(cfg.Context)
} }
+10 -11
View File
@@ -7,9 +7,6 @@ import (
"os/signal" "os/signal"
"time" "time"
"github.com/urfave/cli/v2"
microstore "go-micro.dev/v4/store"
"github.com/opencloud-eu/opencloud/pkg/config/configlog" "github.com/opencloud-eu/opencloud/pkg/config/configlog"
"github.com/opencloud-eu/opencloud/pkg/registry" "github.com/opencloud-eu/opencloud/pkg/registry"
"github.com/opencloud-eu/opencloud/pkg/runner" "github.com/opencloud-eu/opencloud/pkg/runner"
@@ -24,20 +21,22 @@ import (
"github.com/opencloud-eu/opencloud/services/collaboration/pkg/server/http" "github.com/opencloud-eu/opencloud/services/collaboration/pkg/server/http"
"github.com/opencloud-eu/reva/v2/pkg/rgrpc/todo/pool" "github.com/opencloud-eu/reva/v2/pkg/rgrpc/todo/pool"
"github.com/opencloud-eu/reva/v2/pkg/store" "github.com/opencloud-eu/reva/v2/pkg/store"
"github.com/spf13/cobra"
microstore "go-micro.dev/v4/store"
) )
// Server is the entrypoint for the server command. // Server is the entrypoint for the server command.
func Server(cfg *config.Config) *cli.Command { func Server(cfg *config.Config) *cobra.Command {
return &cli.Command{ return &cobra.Command{
Name: "server", Use: "server",
Usage: fmt.Sprintf("start the %s service without runtime (unsupervised mode)", cfg.Service.Name), Short: fmt.Sprintf("start the %s service without runtime (unsupervised mode)", cfg.Service.Name),
Category: "server", PreRunE: func(cmd *cobra.Command, args []string) error {
Before: func(c *cli.Context) error {
return configlog.ReturnFatal(parser.ParseConfig(cfg)) return configlog.ReturnFatal(parser.ParseConfig(cfg))
}, },
Action: func(c *cli.Context) error { RunE: func(cmd *cobra.Command, args []string) error {
logger := logging.Configure(cfg.Service.Name, cfg.Log) logger := logging.Configure(cfg.Service.Name, cfg.Log)
traceProvider, err := tracing.GetTraceProvider(c.Context, cfg.Commons.TracesExporter, cfg.Service.Name) traceProvider, err := tracing.GetTraceProvider(cmd.Context(), cfg.Commons.TracesExporter, cfg.Service.Name)
if err != nil { if err != nil {
return err return err
} }
@@ -6,20 +6,19 @@ import (
"github.com/opencloud-eu/opencloud/pkg/registry" "github.com/opencloud-eu/opencloud/pkg/registry"
"github.com/opencloud-eu/opencloud/pkg/version" "github.com/opencloud-eu/opencloud/pkg/version"
"github.com/opencloud-eu/opencloud/services/collaboration/pkg/config"
"github.com/olekukonko/tablewriter" "github.com/olekukonko/tablewriter"
"github.com/olekukonko/tablewriter/tw" "github.com/olekukonko/tablewriter/tw"
"github.com/opencloud-eu/opencloud/services/collaboration/pkg/config" "github.com/spf13/cobra"
"github.com/urfave/cli/v2"
) )
// Version prints the service versions of all running instances. // Version prints the service versions of all running instances.
func Version(cfg *config.Config) *cli.Command { func Version(cfg *config.Config) *cobra.Command {
return &cli.Command{ return &cobra.Command{
Name: "version", Use: "version",
Usage: "print the version of this binary and the running service instances", Short: "print the version of this binary and the running service instances",
Category: "info", RunE: func(cmd *cobra.Command, args []string) error {
Action: func(c *cli.Context) error {
fmt.Println("Version: " + version.GetString()) fmt.Println("Version: " + version.GetString())
fmt.Printf("Compiled: %s\n", version.Compiled()) fmt.Printf("Compiled: %s\n", version.Compiled())
fmt.Println("") fmt.Println("")