1
0
mirror of https://github.com/mrusme/neonmodem.git synced 2024-11-03 04:27:16 -05:00
neonmodem/cmd/connect.go
2022-12-31 12:30:26 -05:00

76 lines
1.4 KiB
Go

package cmd
import (
"os"
"github.com/mrusme/gobbs/config"
"github.com/mrusme/gobbs/system"
"github.com/spf13/cobra"
)
func init() {
cmd := connectBase()
rootCmd.AddCommand(cmd)
}
func connectBase() *cobra.Command {
var sysType string = ""
var sysURL string = ""
var sysConfig map[string]interface{}
var cmd = &cobra.Command{
Use: "connect",
Short: "Connect to BBS",
Long: "Add a new connection to a BBS.",
PreRun: func(cmd *cobra.Command, args []string) {
sysType, _ := cmd.Flags().GetString("type")
if sysType != "hackernews" {
cmd.MarkFlagRequired("url")
}
},
Run: func(cmd *cobra.Command, args []string) {
sysConfig = make(map[string]interface{})
sys, err := system.New(sysType, &sysConfig, LOG)
if err != nil {
LOG.Panicln(err)
}
if err := sys.Connect(sysURL); err != nil {
LOG.Panicln(err)
}
CFG.Systems = append(CFG.Systems, config.SystemConfig{
Type: sysType,
Config: sys.GetConfig(),
})
if err := CFG.Save(); err != nil {
LOG.Panicln(err)
}
LOG.Infoln("Successfully added new connection!")
os.Exit(0)
},
}
cmd.
Flags().
StringVar(
&sysType,
"type",
"",
"Type of system to connect to (discourse, lemmy, hackernews)",
)
cmd.MarkFlagRequired("type")
cmd.
Flags().
StringVar(
&sysURL,
"url",
"",
"URL of system (e.g. https://www.keebtalk.com)",
)
return cmd
}