45 lines
		
	
	
		
			815 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			815 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package main
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"flag"
 | |
| 	"fmt"
 | |
| 	"os"
 | |
| 
 | |
| 	"git.grassecon.net/grassrootseconomics/sarafu-vise/ssh"
 | |
| )
 | |
| 
 | |
| func main() {
 | |
| 	var dbDir string
 | |
| 	var sessionId string
 | |
| 	flag.StringVar(&dbDir, "dbdir", ".state", "database dir to read from")
 | |
| 	flag.StringVar(&sessionId, "i", "", "session id")
 | |
| 	flag.Parse()
 | |
| 
 | |
| 	if sessionId == "" {
 | |
| 		fmt.Fprintf(os.Stderr, "empty session id\n")
 | |
| 		os.Exit(1)
 | |
| 	}
 | |
| 
 | |
| 	ctx := context.Background()
 | |
| 
 | |
| 	sshKeyFile := flag.Arg(0)
 | |
| 	if sshKeyFile == "" {
 | |
| 		fmt.Fprintf(os.Stderr, "missing key file argument\n")
 | |
| 		os.Exit(1)
 | |
| 	}
 | |
| 
 | |
| 	store, err := ssh.NewSshKeyStore(ctx, dbDir)
 | |
| 	if err != nil {
 | |
| 		fmt.Fprintf(os.Stderr, "%v\n", err)
 | |
| 		os.Exit(1)
 | |
| 	}
 | |
| 	defer store.Close(ctx)
 | |
| 
 | |
| 	err = store.AddFromFile(ctx, sshKeyFile, sessionId)
 | |
| 	if err != nil {
 | |
| 		fmt.Fprintf(os.Stderr, "%v\n", err)
 | |
| 		os.Exit(1)
 | |
| 	}
 | |
| }
 |