MCPcopy Create free account
hub / github.com/ByteYellow/AgentProvenance / processCmd

Function processCmd

internal/cli/process_cmd.go:10–103  ·  view source on GitHub ↗
(dataDir *string)

Source from the content-addressed store, hash-verified

8)
9
10func processCmd(dataDir *string) *cobra.Command {
11 var sessionID string
12 list := &cobra.Command{
13 Use: "list",
14 Short: "list recorded exec processes",
15 RunE: func(cmd *cobra.Command, args []string) error {
16 paths, err := store.Init(*dataDir)
17 if err != nil {
18 return err
19 }
20 db, err := store.Open(paths)
21 if err != nil {
22 return err
23 }
24 defer db.Close()
25 query := `SELECT id, session_id, COALESCE(exec_id, ''), command, status, COALESCE(exit_code, 0), started_at, COALESCE(ended_at, '')
26 FROM processes`
27 sqlArgs := []any{}
28 if sessionID != "" {
29 query += ` WHERE session_id = ?`
30 sqlArgs = append(sqlArgs, sessionID)
31 }
32 query += ` ORDER BY started_at DESC`
33 rows, err := db.Query(query, sqlArgs...)
34 if err != nil {
35 return err
36 }
37 defer rows.Close()
38 w := tabwriter.NewWriter(cmd.OutOrStdout(), 0, 0, 2, ' ', 0)
39 fmt.Fprintln(w, "ID\tSESSION\tEXEC_ID\tSTATUS\tEXIT\tWALL_SECONDS\tCOMMAND")
40 for rows.Next() {
41 var id, sid, execID, command, status, startedAt, endedAt string
42 var exitCode int
43 if err := rows.Scan(&id, &sid, &execID, &command, &status, &exitCode, &startedAt, &endedAt); err != nil {
44 return err
45 }
46 fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%d\t%s\t%s\n", id, sid, short(execID), status, exitCode, wallSecondsText(startedAt, endedAt), command)
47 }
48 if err := rows.Err(); err != nil {
49 return err
50 }
51 return w.Flush()
52 },
53 }
54 list.Flags().StringVar(&sessionID, "session", "", "filter by session id")
55 inspect := &cobra.Command{
56 Use: "inspect <process_id>",
57 Short: "inspect a recorded exec process",
58 Args: cobra.ExactArgs(1),
59 RunE: func(cmd *cobra.Command, args []string) error {
60 paths, err := store.Init(*dataDir)
61 if err != nil {
62 return err
63 }
64 db, err := store.Open(paths)
65 if err != nil {
66 return err
67 }

Callers 1

NewRootCommandFunction · 0.85

Calls 8

InitFunction · 0.92
OpenFunction · 0.92
shortFunction · 0.85
wallSecondsTextFunction · 0.85
controlSvcFunction · 0.85
FlushMethod · 0.80
InterruptMethod · 0.65
CloseMethod · 0.45

Tested by

no test coverage detected