feat: basic configuration UI

This commit is contained in:
2025-05-28 07:13:38 +02:00
parent b5b7d08f9f
commit d16db82cab
8 changed files with 765 additions and 12 deletions

View File

@@ -9,6 +9,7 @@ import (
"github.com/0x1d/rcond/pkg/config"
"github.com/0x1d/rcond/pkg/rcond"
"github.com/0x1d/rcond/pkg/ui"
)
func usage() {
@@ -24,9 +25,24 @@ func main() {
os.Exit(1)
}
rcond.NewNode(appConfig).Up()
switch appConfig.RunMode {
case config.RunModeNode:
fmt.Println("running node")
// Validate required fields
if err := validateRequiredFields(map[string]*string{
"addr": &appConfig.Rcond.Addr,
"token": &appConfig.Rcond.ApiToken,
}); err != nil {
usage()
fmt.Printf("\nFailed to validate required fields: %v\n", err)
os.Exit(1)
}
rcond.NewNode(appConfig).Up()
select {}
case config.RunModeUI:
ui.NewUI(appConfig)
}
select {}
}
func loadConfig() (*config.Config, error) {
@@ -36,6 +52,8 @@ func loadConfig() (*config.Config, error) {
flag.StringVar(&configPath, "config", configPath, "Path to the configuration file")
flag.BoolVar(&help, "help", false, "Show help")
// check for runmode
runMode := flag.String("runmode", "node", "Run mode: node or ui")
flag.Parse()
if help {
@@ -51,15 +69,7 @@ func loadConfig() (*config.Config, error) {
}
appConfig = configFile
}
// Validate required fields
if err := validateRequiredFields(map[string]*string{
"addr": &appConfig.Rcond.Addr,
"token": &appConfig.Rcond.ApiToken,
}); err != nil {
return nil, err
}
appConfig.RunMode = config.RunMode(*runMode)
return appConfig, nil
}