Files
QSfera/Server/tests/ocwrapper/cmd/cmd.go
Курнат Андрей 2315f25754 Initial QSfera import
2026-06-07 10:20:04 +03:00

75 lines
2.3 KiB
Go

package cmd
import (
"fmt"
"ocwrapper/common"
qsfera "ocwrapper/qsfera"
qsferaConfig "ocwrapper/qsfera/config"
wrapper "ocwrapper/wrapper"
wrapperConfig "ocwrapper/wrapper/config"
"github.com/spf13/cobra"
)
var rootCmd = &cobra.Command{
Use: "ocwrapper",
Short: "ocwrapper is a wrapper for qsfera 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")
qsferaConfig.Set("bin", binFlag)
urlFlag, _ := cmd.Flags().GetString("url")
qsferaConfig.Set("url", urlFlag)
retryFlag, _ := cmd.Flags().GetString("retry")
qsferaConfig.Set("retry", retryFlag)
adminUsernameFlag, _ := cmd.Flags().GetString("admin-username")
qsferaConfig.Set("adminUsername", adminUsernameFlag)
adminPasswordFlag, _ := cmd.Flags().GetString("admin-password")
qsferaConfig.Set("adminPassword", adminPasswordFlag)
skipQsferaRunFlag, _ := cmd.Flags().GetBool("skip-Qsfera-run")
if !skipQsferaRunFlag {
go qsfera.Start(nil)
}
portFlag, _ := cmd.Flags().GetString("port")
go wrapper.Start(portFlag)
},
}
// serve command args
serveCmd.Flags().SortFlags = false
serveCmd.Flags().StringP("bin", "", qsferaConfig.Get("bin"), "Full qsfera binary path")
serveCmd.Flags().StringP("url", "", qsferaConfig.Get("url"), "qsfera server url")
serveCmd.Flags().StringP("retry", "", qsferaConfig.Get("retry"), "Number of retries to start qsfera server")
serveCmd.Flags().StringP("port", "p", wrapperConfig.Get("port"), "Wrapper API server port")
serveCmd.Flags().StringP("admin-username", "", "", "admin username for qsfera server")
serveCmd.Flags().StringP("admin-password", "", "", "admin password for qsfera server")
serveCmd.Flags().Bool("skip-Qsfera-run", false, "Skip running qsfera 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)
}
}