1package cmd
2
3import (
4 "github.com/charmbracelet/soft-serve/server/backend"
5 "github.com/charmbracelet/soft-serve/server/sshutils"
6 "github.com/spf13/cobra"
7)
8
9func infoCommand() *cobra.Command {
10 cmd := &cobra.Command{
11 Use: "info",
12 Short: "Show your info",
13 Args: cobra.NoArgs,
14 RunE: func(cmd *cobra.Command, args []string) error {
15 ctx := cmd.Context()
16 be := backend.FromContext(ctx)
17 pk := sshutils.PublicKeyFromContext(ctx)
18 user, err := be.UserByPublicKey(ctx, pk)
19 if err != nil {
20 return err
21 }
22
23 cmd.Printf("Username: %s\n", user.Username())
24 cmd.Printf("Admin: %t\n", user.IsAdmin())
25 cmd.Printf("Public keys:\n")
26 for _, pk := range user.PublicKeys() {
27 cmd.Printf(" %s\n", sshutils.MarshalAuthorizedKey(pk))
28 }
29 return nil
30 },
31 }
32
33 return cmd
34}