Commit e956960

Eric Bower  ·  2025-08-22 16:31:27 -0400 EDT
parent 588d72e
feat(feeds): cli `print` command prints the feed post
1 files changed,  +24, -1
+24, -1
......@@ -25,6 +25,8 @@ func Middleware(dbpool db.DB, cfg *shared.ConfigSite) pssh.SSHServerMiddleware {
2525 return err
2626 }
2727
28+ logger = shared.LoggerWithUser(logger, user)
29+
2830 cmd := "help"
2931 if len(args) > 0 {
3032 cmd = args[0]
......@@ -32,7 +34,7 @@ func Middleware(dbpool db.DB, cfg *shared.ConfigSite) pssh.SSHServerMiddleware {
3234
3335 switch cmd {
3436 case "help":
35- _, _ = fmt.Fprintf(sesh, "Commands: [help, ls, rm, run]\r\n\r\n")
37+ _, _ = fmt.Fprintf(sesh, "Commands: [help, ls, rm, print, run]\r\n\r\n")
3638 writer := tabwriter.NewWriter(sesh, 0, 0, 1, ' ', tabwriter.TabIndent)
3739 _, _ = fmt.Fprintln(writer, "Cmd\tDesc")
3840 _, _ = fmt.Fprintf(
......@@ -50,6 +52,11 @@ func Middleware(dbpool db.DB, cfg *shared.ConfigSite) pssh.SSHServerMiddleware {
5052 "%s\t%s\r\n",
5153 "rm {filename}", "removes feed digest post",
5254 )
55+ _, _ = fmt.Fprintf(
56+ writer,
57+ "%s\t%s\r\n",
58+ "print {filename}", "prints the feed digest file",
59+ )
5360 _, _ = fmt.Fprintf(
5461 writer,
5562 "%s\t%s\r\n",
......@@ -106,6 +113,7 @@ func Middleware(dbpool db.DB, cfg *shared.ConfigSite) pssh.SSHServerMiddleware {
106113 _, _ = fmt.Fprintln(sesh.Stderr(), err)
107114 return err
108115 }
116+ logger.Info("rm cmd", "filename", filename, "write", write)
109117 if write {
110118 err = dbpool.RemovePosts([]string{post.ID})
111119 if err != nil {
......@@ -117,6 +125,20 @@ func Middleware(dbpool db.DB, cfg *shared.ConfigSite) pssh.SSHServerMiddleware {
117125 _, _ = fmt.Fprintln(sesh, "WARNING: *must* append with `--write` for the changes to persist.")
118126 }
119127 return err
128+ case "print":
129+ if len(args) < 2 {
130+ err := fmt.Errorf("must provide filename of post to run")
131+ _, _ = fmt.Fprintln(sesh.Stderr(), err)
132+ return err
133+ }
134+ filename := args[1]
135+ post, err := dbpool.FindPostWithFilename(filename, user.ID, "feeds")
136+ if err != nil {
137+ _, _ = fmt.Fprintln(sesh.Stderr(), err)
138+ return err
139+ }
140+ _, _ = fmt.Fprintf(sesh, "%s\n", post.Text)
141+ return nil
120142 case "run":
121143 if len(args) < 2 {
122144 err := fmt.Errorf("must provide filename of post to run")
......@@ -130,6 +152,7 @@ func Middleware(dbpool db.DB, cfg *shared.ConfigSite) pssh.SSHServerMiddleware {
130152 return err
131153 }
132154 _, _ = fmt.Fprintf(sesh, "running feed post: %s\r\n", filename)
155+ logger.Info("run cmd", "filename", filename)
133156 fetcher := NewFetcher(dbpool, cfg)
134157 err = fetcher.RunPost(logger, user, post, true, time.Now().UTC())
135158 if err != nil {