Compare commits
No commits in common. "b0f6188122ef5f4b5e04415e85b948c3dbbbbe3d" and "12632283513227c59b184eedec47d6601f133221" have entirely different histories.
b0f6188122
...
1263228351
113
cmd/ssh/main.go
113
cmd/ssh/main.go
@ -1,113 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"flag"
|
|
||||||
"fmt"
|
|
||||||
"os"
|
|
||||||
"os/signal"
|
|
||||||
"path"
|
|
||||||
"sync"
|
|
||||||
"syscall"
|
|
||||||
|
|
||||||
"git.defalsify.org/vise.git/db"
|
|
||||||
"git.defalsify.org/vise.git/engine"
|
|
||||||
"git.defalsify.org/vise.git/logging"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
wg sync.WaitGroup
|
|
||||||
keyStore db.Db
|
|
||||||
logg = logging.NewVanilla()
|
|
||||||
scriptDir = path.Join("services", "registration")
|
|
||||||
)
|
|
||||||
|
|
||||||
func main() {
|
|
||||||
var dbDir string
|
|
||||||
var resourceDir string
|
|
||||||
var size uint
|
|
||||||
var engineDebug bool
|
|
||||||
var stateDebug bool
|
|
||||||
var host string
|
|
||||||
var port uint
|
|
||||||
flag.StringVar(&dbDir, "dbdir", ".state", "database dir to read from")
|
|
||||||
flag.StringVar(&resourceDir, "resourcedir", path.Join("services", "registration"), "resource dir")
|
|
||||||
flag.BoolVar(&engineDebug, "engine-debug", false, "use engine debug output")
|
|
||||||
flag.BoolVar(&stateDebug, "state-debug", false, "use engine debug output")
|
|
||||||
flag.UintVar(&size, "s", 160, "max size of output")
|
|
||||||
flag.StringVar(&host, "h", "127.0.0.1", "http host")
|
|
||||||
flag.UintVar(&port, "p", 7122, "http port")
|
|
||||||
flag.Parse()
|
|
||||||
|
|
||||||
sshKeyFile := flag.Arg(0)
|
|
||||||
_, err := os.Stat(sshKeyFile)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Fprintf(os.Stderr, "cannot open ssh server private key file: %v\n", err)
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
|
|
||||||
ctx := context.Background()
|
|
||||||
logg.WarnCtxf(ctx, "!!!!! WARNING WARNING WARNING")
|
|
||||||
logg.WarnCtxf(ctx, "!!!!! =======================")
|
|
||||||
logg.WarnCtxf(ctx, "!!!!! This is not a production ready server!")
|
|
||||||
logg.WarnCtxf(ctx, "!!!!! Do not expose to internet and only use with tunnel!")
|
|
||||||
logg.WarnCtxf(ctx, "!!!!! (See ssh -L <...>)")
|
|
||||||
|
|
||||||
logg.Infof("start command", "dbdir", dbDir, "resourcedir", resourceDir, "outputsize", size, "keyfile", sshKeyFile, "host", host, "port", port)
|
|
||||||
|
|
||||||
pfp := path.Join(scriptDir, "pp.csv")
|
|
||||||
|
|
||||||
cfg := engine.Config{
|
|
||||||
Root: "root",
|
|
||||||
OutputSize: uint32(size),
|
|
||||||
FlagCount: uint32(16),
|
|
||||||
}
|
|
||||||
if stateDebug {
|
|
||||||
cfg.StateDebug = true
|
|
||||||
}
|
|
||||||
if engineDebug {
|
|
||||||
cfg.EngineDebug = true
|
|
||||||
}
|
|
||||||
|
|
||||||
authKeyStore, err := ssh.NewSshKeyStore(ctx, dbDir)
|
|
||||||
if err != nil {
|
|
||||||
fmt.Fprintf(os.Stderr, "keystore file open error: %v", err)
|
|
||||||
os.Exit(1)
|
|
||||||
}
|
|
||||||
defer func() {
|
|
||||||
logg.TraceCtxf(ctx, "shutdown auth key store reached")
|
|
||||||
err = authKeyStore.Close()
|
|
||||||
if err != nil {
|
|
||||||
logg.ErrorCtxf(ctx, "keystore close error", "err", err)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
cint := make(chan os.Signal)
|
|
||||||
cterm := make(chan os.Signal)
|
|
||||||
signal.Notify(cint, os.Interrupt, syscall.SIGINT)
|
|
||||||
signal.Notify(cterm, os.Interrupt, syscall.SIGTERM)
|
|
||||||
|
|
||||||
runner := &ssh.SshRunner{
|
|
||||||
Cfg: cfg,
|
|
||||||
Debug: engineDebug,
|
|
||||||
FlagFile: pfp,
|
|
||||||
DbDir: dbDir,
|
|
||||||
ResourceDir: resourceDir,
|
|
||||||
SrvKeyFile: sshKeyFile,
|
|
||||||
Host: host,
|
|
||||||
Port: port,
|
|
||||||
}
|
|
||||||
go func() {
|
|
||||||
select {
|
|
||||||
case _ = <-cint:
|
|
||||||
case _ = <-cterm:
|
|
||||||
}
|
|
||||||
logg.TraceCtxf(ctx, "shutdown runner reached")
|
|
||||||
err := runner.Stop()
|
|
||||||
if err != nil {
|
|
||||||
logg.ErrorCtxf(ctx, "runner stop error", "err", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
}()
|
|
||||||
runner.Run(ctx, authKeyStore)
|
|
||||||
}
|
|
@ -1 +1,2 @@
|
|||||||
HALT
|
HALT
|
||||||
|
MOVE ^
|
||||||
|
Loading…
Reference in New Issue
Block a user