- commit
- e956960
- parent
- 588d72e
- author
- Eric Bower
- date
- 2025-08-22 16:31:27 -0400 EDT
feat(feeds): cli `print` command prints the feed post
1 files changed,
+24,
-1
+24,
-1
1@@ -25,6 +25,8 @@ func Middleware(dbpool db.DB, cfg *shared.ConfigSite) pssh.SSHServerMiddleware {
2 return err
3 }
4
5+ logger = shared.LoggerWithUser(logger, user)
6+
7 cmd := "help"
8 if len(args) > 0 {
9 cmd = args[0]
10@@ -32,7 +34,7 @@ func Middleware(dbpool db.DB, cfg *shared.ConfigSite) pssh.SSHServerMiddleware {
11
12 switch cmd {
13 case "help":
14- _, _ = fmt.Fprintf(sesh, "Commands: [help, ls, rm, run]\r\n\r\n")
15+ _, _ = fmt.Fprintf(sesh, "Commands: [help, ls, rm, print, run]\r\n\r\n")
16 writer := tabwriter.NewWriter(sesh, 0, 0, 1, ' ', tabwriter.TabIndent)
17 _, _ = fmt.Fprintln(writer, "Cmd\tDesc")
18 _, _ = fmt.Fprintf(
19@@ -50,6 +52,11 @@ func Middleware(dbpool db.DB, cfg *shared.ConfigSite) pssh.SSHServerMiddleware {
20 "%s\t%s\r\n",
21 "rm {filename}", "removes feed digest post",
22 )
23+ _, _ = fmt.Fprintf(
24+ writer,
25+ "%s\t%s\r\n",
26+ "print {filename}", "prints the feed digest file",
27+ )
28 _, _ = fmt.Fprintf(
29 writer,
30 "%s\t%s\r\n",
31@@ -106,6 +113,7 @@ func Middleware(dbpool db.DB, cfg *shared.ConfigSite) pssh.SSHServerMiddleware {
32 _, _ = fmt.Fprintln(sesh.Stderr(), err)
33 return err
34 }
35+ logger.Info("rm cmd", "filename", filename, "write", write)
36 if write {
37 err = dbpool.RemovePosts([]string{post.ID})
38 if err != nil {
39@@ -117,6 +125,20 @@ func Middleware(dbpool db.DB, cfg *shared.ConfigSite) pssh.SSHServerMiddleware {
40 _, _ = fmt.Fprintln(sesh, "WARNING: *must* append with `--write` for the changes to persist.")
41 }
42 return err
43+ case "print":
44+ if len(args) < 2 {
45+ err := fmt.Errorf("must provide filename of post to run")
46+ _, _ = fmt.Fprintln(sesh.Stderr(), err)
47+ return err
48+ }
49+ filename := args[1]
50+ post, err := dbpool.FindPostWithFilename(filename, user.ID, "feeds")
51+ if err != nil {
52+ _, _ = fmt.Fprintln(sesh.Stderr(), err)
53+ return err
54+ }
55+ _, _ = fmt.Fprintf(sesh, "%s\n", post.Text)
56+ return nil
57 case "run":
58 if len(args) < 2 {
59 err := fmt.Errorf("must provide filename of post to run")
60@@ -130,6 +152,7 @@ func Middleware(dbpool db.DB, cfg *shared.ConfigSite) pssh.SSHServerMiddleware {
61 return err
62 }
63 _, _ = fmt.Fprintf(sesh, "running feed post: %s\r\n", filename)
64+ logger.Info("run cmd", "filename", filename)
65 fetcher := NewFetcher(dbpool, cfg)
66 err = fetcher.RunPost(logger, user, post, true, time.Now().UTC())
67 if err != nil {