From 45c20d03663878f3508eaa9b961cb0cb12cc5574 Mon Sep 17 00:00:00 2001 From: Brian Picciano Date: Wed, 24 Jul 2024 21:48:38 +0200 Subject: Got post exporting working --- src/cmd/export/main.go | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 src/cmd/export/main.go (limited to 'src/cmd/export/main.go') diff --git a/src/cmd/export/main.go b/src/cmd/export/main.go new file mode 100644 index 0000000..1d39bc7 --- /dev/null +++ b/src/cmd/export/main.go @@ -0,0 +1,75 @@ +package main + +import ( + "context" + + cfgpkg "dev.mediocregopher.com/mediocre-blog.git/src/cfg" + "dev.mediocregopher.com/mediocre-blog.git/src/gmi" + "dev.mediocregopher.com/mediocre-blog.git/src/http" + "dev.mediocregopher.com/mediocre-blog.git/src/post" + "dev.mediocregopher.com/mediocre-blog.git/src/render" + "dev.mediocregopher.com/mediocre-go-lib.git/mlog" +) + +func main() { + var ( + ctx = context.Background() + cfg = cfgpkg.NewBlogCfg(cfgpkg.Params{}) + dataDir cfgpkg.DataDir + httpParams http.Params + gmiParams gmi.Params + ) + + dataDir.SetupCfg(cfg) + defer dataDir.Close() + + httpParams.SetupCfg(cfg) + gmiParams.SetupCfg(cfg) + + exportDirPath := cfg.String("export-dir-path", "", "Directory to export into") + + // initialization + err := cfg.Init(ctx) + + logger := mlog.NewLogger(nil) + defer logger.Close() + + logger.Info(ctx, "process started") + defer logger.Info(ctx, "process exiting") + + if err != nil { + logger.Fatal(ctx, "initializing", err) + } + + if *exportDirPath == "" { + logger.FatalString(ctx, "--export-dir-path is required") + } + + postSQLDB, err := post.NewSQLDB(dataDir) + if err != nil { + logger.Fatal(ctx, "initializing sql db for post data", err) + } + defer postSQLDB.Close() + + var ( + urlBuilder = render.NewURLBuilder( + gmiParams.PublicURL, + httpParams.PublicURL, + gmiParams.PublicURL, + ) + postStore = post.NewStore(postSQLDB) + //postAssetStore = asset.NewStore(postSQLDB) + //postDraftStore = post.NewDraftStore(postSQLDB) + ) + + err = exportPosts( + ctx, + logger.WithNamespace("posts"), + postStore, + urlBuilder, + *exportDirPath, + ) + if err != nil { + logger.Fatal(ctx, "Failed to export post data", err) + } +} -- cgit v1.2.3