Files
opencloud/tests/ocwrapper/cmd/cmd.go
Jörn Friedrich Dreyer d0e51010bf replace more .Value.String() occurences
Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
2025-12-15 16:40:27 +01:00

75 lines
2.3 KiB
Go

package cmd
import (
"fmt"
"ocwrapper/common"
opencloud "ocwrapper/opencloud"
opencloudConfig "ocwrapper/opencloud/config"
wrapper "ocwrapper/wrapper"
wrapperConfig "ocwrapper/wrapper/config"
"github.com/spf13/cobra"
)
var rootCmd = &cobra.Command{
Use: "ocwrapper",
Short: "ocwrapper is a wrapper for opencloud server",
Run: func(cmd *cobra.Command, args []string) {
if err := cmd.Help(); err != nil {
fmt.Printf("error executing help command: %v\n", err)
}
},
}
func serveCmd() *cobra.Command {
serveCmd := &cobra.Command{
Use: "serve",
Short: "Starts the server",
Run: func(cmd *cobra.Command, args []string) {
common.Wg.Add(2)
// set configs
binFlag, _ := cmd.Flags().GetString("bin")
opencloudConfig.Set("bin", binFlag)
urlFlag, _ := cmd.Flags().GetString("url")
opencloudConfig.Set("url", urlFlag)
retryFlag, _ := cmd.Flags().GetString("retry")
opencloudConfig.Set("retry", retryFlag)
adminUsernameFlag, _ := cmd.Flags().GetString("admin-username")
opencloudConfig.Set("adminUsername", adminUsernameFlag)
adminPasswordFlag, _ := cmd.Flags().GetString("admin-password")
opencloudConfig.Set("adminPassword", adminPasswordFlag)
skipOpenCloudRunFlag, _ := cmd.Flags().GetBool("skip-OpenCloud-run")
if !skipOpenCloudRunFlag {
go opencloud.Start(nil)
}
portFlag, _ := cmd.Flags().GetString("port")
go wrapper.Start(portFlag)
},
}
// serve command args
serveCmd.Flags().SortFlags = false
serveCmd.Flags().StringP("bin", "", opencloudConfig.Get("bin"), "Full opencloud binary path")
serveCmd.Flags().StringP("url", "", opencloudConfig.Get("url"), "opencloud server url")
serveCmd.Flags().StringP("retry", "", opencloudConfig.Get("retry"), "Number of retries to start opencloud server")
serveCmd.Flags().StringP("port", "p", wrapperConfig.Get("port"), "Wrapper API server port")
serveCmd.Flags().StringP("admin-username", "", "", "admin username for opencloud server")
serveCmd.Flags().StringP("admin-password", "", "", "admin password for opencloud server")
serveCmd.Flags().Bool("skip-OpenCloud-run", false, "Skip running opencloud server")
return serveCmd
}
// Execute executes the command
func Execute() {
rootCmd.CompletionOptions.DisableDefaultCmd = true
rootCmd.AddCommand(serveCmd())
if err := rootCmd.Execute(); err != nil {
fmt.Printf("error executing command: %v\n", err)
}
}