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 runArchiveSession(cmd *cobra.Command, args []string) error {
22 env, err := shared.Environment(cmd)
23 if err != nil {
24 return err
25 }
26
27 sessionDoc, found, err := shared.ActiveSession(cmd, env)
28 if err != nil {
29 return err
30 }
31 if !found {
32 return nil
33 }
34
35 archived, err := env.SessionStore.Archive(cmd.Context(), sessionDoc.SID)
36 if err != nil {
37 return err
38 }
39
40 out := cmd.OutOrStdout()
41 fmt.Fprintf(out, "Session %s archived.\n", archived.SID)
42 return nil
43}