add skeleton for CLI processor

This commit is contained in:
Iris Lightshard 2024-10-01 19:49:13 -06:00
parent c6cfdf9e9f
commit a7e5c99cec
Signed by: Iris Lightshard
GPG key ID: 688407174966CAF3
2 changed files with 59 additions and 1 deletions

57
cli/cli.go Normal file
View file

@ -0,0 +1,57 @@
package cli
import (
"encoding/json"
"io/ioutil"
"log"
"forge.lightcrystal.systems/lightcrystal/underbbs/adapter"
"forge.lightcrystal.systems/lightcrystal/underbbs/models"
)
func Process(args ...string) error {
// allocate storage for the settings array
var settings []models.Settings
var s models.Settings
// get adapter from first arg
adapterName := args[0]
args = args[1:]
// get config from config fle based on adapter
content, err := ioutil.ReadFile("./config.json")
if err != nil {
return err
}
err = json.Unmarshal(content, settings)
if err != nil {
return err
}
for _, x := range settings {
if x.Nickname == adapterName {
s = x
break
}
}
// instantiate adapter with config
var a adapter.Adapter
switch s.Protocol {
case "nostr":
a = &adapter.NostrAdapter{}
case "mastodon":
a = &adapter.MastoAdapter{}
case "misskey":
a = &adapter.MisskeyAdapter{}
default:
break
}
a.Init(s, nil)
// process remaining args and execute
switch args[0] {
default:
log.Print(args)
}
return nil
}

View file

@ -11,6 +11,7 @@ import (
"strconv"
"time"
"forge.lightcrystal.systems/lightcrystal/underbbs/cli"
"forge.lightcrystal.systems/lightcrystal/underbbs/server"
)
@ -35,7 +36,7 @@ func main() {
}
func run_cli(args ...string) error {
log.Print("test!!")
cli.Process(args...)
return nil
}