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) } }