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}