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 setUsernameCommand() *cobra.Command {
10	cmd := &cobra.Command{
11		Use:   "set-username USERNAME",
12		Short: "Set your username",
13		Args:  cobra.ExactArgs(1),
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			return be.SetUsername(ctx, user.Username(), args[0])
24		},
25	}
26
27	return cmd
28}