initial commit
This commit is contained in:
commit
60fb40d61a
34 changed files with 2571 additions and 0 deletions
83
cmd/keyctl/main.go
Normal file
83
cmd/keyctl/main.go
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
// Copyright (C) 2023 Marius Schellenberger
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"git.giftfish.de/ston1th/keyctl/pkg/server"
|
||||
"github.com/go-logr/logr"
|
||||
"k8s.io/klog/v2"
|
||||
"k8s.io/klog/v2/klogr"
|
||||
)
|
||||
|
||||
var (
|
||||
version string
|
||||
|
||||
listen string
|
||||
path string
|
||||
|
||||
log logr.Logger
|
||||
)
|
||||
|
||||
func usage() {
|
||||
fmt.Printf(`keyctl %s:
|
||||
supported subcommands:
|
||||
keyctl server - starts a keyctl server
|
||||
keyctl new - generates a new key
|
||||
keyctl get - retrieve a key from the server
|
||||
keyctl ls - list configured keys
|
||||
keyctl req - list current key requests
|
||||
keyctl approve - approve a key request
|
||||
keyctl del - delete a key
|
||||
keyctl help - show this usage
|
||||
`, version)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
func main() {
|
||||
if len(os.Args) == 0 {
|
||||
usage()
|
||||
}
|
||||
switch os.Args[0] {
|
||||
case "new", "get", "ls", "req", "approve", "del":
|
||||
//flag.StringVar(&config, "config", "/etc/keyctl/url.conf", "path to client config file")
|
||||
//flag.Parse()
|
||||
//cli.
|
||||
case "server":
|
||||
klog.InitFlags(nil)
|
||||
flag.StringVar(&listen, "listen", ":7070", "listen ip:port")
|
||||
flag.StringVar(&path, "path", "/var/keyctl/data.db", "data storage db")
|
||||
flag.Parse()
|
||||
default:
|
||||
usage()
|
||||
}
|
||||
|
||||
log = klogr.New().WithName("main")
|
||||
log.Info("starting keyctl", "version", version)
|
||||
srv, err := server.NewServer(klogr.New().WithName("srv"), listen, path)
|
||||
if err != nil {
|
||||
klog.Fatalf("init failed: %s", err)
|
||||
}
|
||||
|
||||
err = srv.Start(klogr.New().WithName("db"))
|
||||
if err != nil {
|
||||
klog.Fatalf("init failed: %s", err)
|
||||
}
|
||||
|
||||
sigs := make(chan os.Signal, 1)
|
||||
signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM)
|
||||
<-sigs
|
||||
log.Info("keyctl shutdown initiated")
|
||||
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
|
||||
srv.Shutdown(ctx)
|
||||
cancel()
|
||||
log.Info("keyctl shutdown completed")
|
||||
os.Exit(0)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue