mirror of
https://github.com/tale/headplane.git
synced 2026-08-10 14:06:51 +00:00
chore: reorganize go code
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
_ "github.com/joho/godotenv/autoload"
|
||||
"github.com/tale/headplane/agent/internal/config"
|
||||
"github.com/tale/headplane/agent/internal/hpagent"
|
||||
"github.com/tale/headplane/agent/internal/sshutil"
|
||||
"github.com/tale/headplane/agent/internal/tsnet"
|
||||
"github.com/tale/headplane/agent/internal/util"
|
||||
)
|
||||
|
||||
type Register struct {
|
||||
Type string
|
||||
ID string
|
||||
}
|
||||
|
||||
func main() {
|
||||
log := util.GetLogger()
|
||||
cfg, err := config.Load()
|
||||
if err != nil {
|
||||
log.Fatal("Failed to load config: %s", err)
|
||||
}
|
||||
|
||||
log.SetDebug(cfg.Debug)
|
||||
agent := tsnet.NewAgent(cfg)
|
||||
|
||||
agent.Connect()
|
||||
defer agent.Shutdown()
|
||||
|
||||
log.Msg(&Register{
|
||||
Type: "register",
|
||||
ID: agent.ID,
|
||||
})
|
||||
|
||||
sshutil.DispatchSSHStdin()
|
||||
hpagent.FollowMaster(agent)
|
||||
}
|
||||
+30
-4
@@ -3,6 +3,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"log"
|
||||
"syscall/js"
|
||||
|
||||
@@ -10,14 +11,39 @@ import (
|
||||
)
|
||||
|
||||
func main() {
|
||||
js.Global().Set("newIPN", js.FuncOf(func(this js.Value, args []js.Value) any {
|
||||
if len(args) != 1 {
|
||||
log.Fatal("Usage: newIPN(config)")
|
||||
log.Printf("Loading WASM Headplane SSH module")
|
||||
js.Global().Set("TsWasmNet", js.FuncOf(func(this js.Value, args []js.Value) any {
|
||||
if len(args) != 2 {
|
||||
log.Fatal("Usage: TsWasmNet(config, callbacks)")
|
||||
return nil
|
||||
}
|
||||
|
||||
return hp_ipn.NewIPN(args[0])
|
||||
options, err := hp_ipn.ParseTsWasmNetOptions(args[0])
|
||||
if err != nil {
|
||||
log.Fatal("Error parsing options:", err)
|
||||
return nil
|
||||
}
|
||||
|
||||
callbacks, err := hp_ipn.ParseTsWasmNetCallbacks(args[1])
|
||||
if err != nil {
|
||||
log.Fatal("Error parsing callbacks:", err)
|
||||
return nil
|
||||
}
|
||||
|
||||
ipn, err := hp_ipn.NewTsWasmIpn(options, callbacks)
|
||||
if err != nil {
|
||||
log.Fatal("Error creating TsWasmIpn:", err)
|
||||
return nil
|
||||
}
|
||||
|
||||
return map[string]any{
|
||||
"Start": js.FuncOf(func(this js.Value, args []js.Value) any {
|
||||
ipn.Start(context.Background())
|
||||
return nil
|
||||
}),
|
||||
}
|
||||
}))
|
||||
|
||||
log.Printf("WASM Headplane SSH module loaded successfully")
|
||||
<-make(chan bool)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user