1// SPDX-FileCopyrightText: Amolith <amolith@secluded.site>
2//
3// SPDX-License-Identifier: AGPL-3.0-or-later
4
5package cmd
6
7import (
8 "fmt"
9
10 "git.secluded.site/np/cmd/shared"
11 "github.com/spf13/cobra"
12)
13
14var aCmd = &cobra.Command{
15 Use: "a",
16 Short: "Archive session",
17 Long: `Archive the current session`,
18 RunE: runArchiveSession,
19}
20
21func init() {
22 rootCmd.AddCommand(aCmd)
23}
24
25func runArchiveSession(cmd *cobra.Command, args []string) error {
26 env, err := shared.Environment(cmd)
27 if err != nil {
28 return err
29 }
30
31 sessionDoc, found, err := shared.ActiveSession(cmd, env)
32 if err != nil {
33 return err
34 }
35 if !found {
36 return nil
37 }
38
39 archived, err := env.SessionStore.Archive(cmd.Context(), sessionDoc.SID)
40 if err != nil {
41 return err
42 }
43
44 out := cmd.OutOrStdout()
45 fmt.Fprintf(out, "Session %s archived.\n", archived.SID)
46 return nil
47}