Simplify admin publishing pipeline
This commit is contained in:
parent
13e7e4026d
commit
9186801c7f
37 changed files with 750 additions and 3367 deletions
|
|
@ -1,33 +0,0 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"osaet/backend/internal/postimport"
|
||||
)
|
||||
|
||||
func main() {
|
||||
fs := flag.NewFlagSet("import-articles", flag.ExitOnError)
|
||||
file := fs.String("file", "articles.csv", "CSV file path")
|
||||
overwrite := fs.Bool("overwrite", false, "overwrite existing markdown files")
|
||||
postsDir := fs.String("posts-dir", "content/posts", "posts output directory relative to project root")
|
||||
if err := fs.Parse(os.Args[1:]); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "error:", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
result, err := postimport.Import(postimport.Options{
|
||||
CSVPath: *file,
|
||||
PostsDir: *postsDir,
|
||||
Overwrite: *overwrite,
|
||||
WorkingDir: "",
|
||||
})
|
||||
if err != nil {
|
||||
fmt.Fprintln(os.Stderr, "error:", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
fmt.Printf("imported %d post(s), skipped %d existing file(s), skipped %d non-post row(s)\n", result.Imported, result.SkippedExisting, result.SkippedNonPost)
|
||||
}
|
||||
|
|
@ -32,6 +32,13 @@ func run() error {
|
|||
if err := cfg.Validate(); err != nil {
|
||||
return err
|
||||
}
|
||||
logCloser, err := admin.ConfigureLogging(cfg)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if logCloser != nil {
|
||||
defer logCloser.Close()
|
||||
}
|
||||
|
||||
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM)
|
||||
defer stop()
|
||||
|
|
@ -49,8 +56,6 @@ func run() error {
|
|||
return admin.RunMigrations(ctx, db, cfg.MigrationsDir)
|
||||
case "create-user":
|
||||
return createUser(ctx, db)
|
||||
case "import-markdown":
|
||||
return importMarkdown(ctx, cfg, db)
|
||||
default:
|
||||
return fmt.Errorf("unknown command %q", command)
|
||||
}
|
||||
|
|
@ -75,21 +80,6 @@ func createUser(ctx context.Context, db *pgxpool.Pool) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func importMarkdown(ctx context.Context, cfg admin.Config, db *pgxpool.Pool) error {
|
||||
postsDir := cfg.PostsDir
|
||||
if len(os.Args) >= 3 {
|
||||
postsDir = os.Args[2]
|
||||
}
|
||||
|
||||
result, err := admin.NewStore(db).ImportMarkdownPosts(ctx, postsDir)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
fmt.Fprintf(os.Stdout, "imported %d markdown post(s), skipped %d file(s)\n", result.Imported, result.Skipped)
|
||||
return nil
|
||||
}
|
||||
|
||||
func serve(ctx context.Context, cfg admin.Config, db *pgxpool.Pool) error {
|
||||
server := &http.Server{
|
||||
Addr: cfg.Addr,
|
||||
|
|
|
|||
|
|
@ -1,15 +0,0 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"osaet/backend/internal/cli"
|
||||
)
|
||||
|
||||
func main() {
|
||||
if err := cli.Run(os.Args[1:]); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "error:", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue