diff options
Diffstat (limited to 'srv/src/cmd/load-test-data')
-rw-r--r-- | srv/src/cmd/load-test-data/galaxy.jpg | bin | 69901 -> 0 bytes | |||
-rw-r--r-- | srv/src/cmd/load-test-data/main.go | 129 | ||||
-rw-r--r-- | srv/src/cmd/load-test-data/test-data.yml | 85 |
3 files changed, 0 insertions, 214 deletions
diff --git a/srv/src/cmd/load-test-data/galaxy.jpg b/srv/src/cmd/load-test-data/galaxy.jpg Binary files differdeleted file mode 100644 index a2ee2d1..0000000 --- a/srv/src/cmd/load-test-data/galaxy.jpg +++ /dev/null diff --git a/srv/src/cmd/load-test-data/main.go b/srv/src/cmd/load-test-data/main.go deleted file mode 100644 index 5ebee32..0000000 --- a/srv/src/cmd/load-test-data/main.go +++ /dev/null @@ -1,129 +0,0 @@ -package main - -import ( - "context" - "fmt" - "os" - "path/filepath" - "time" - - cfgpkg "github.com/mediocregopher/blog.mediocregopher.com/srv/cfg" - "github.com/mediocregopher/blog.mediocregopher.com/srv/post" - "github.com/mediocregopher/mediocre-go-lib/v2/mctx" - "github.com/mediocregopher/mediocre-go-lib/v2/mlog" - "gopkg.in/yaml.v3" -) - -type testData struct { - PublishedPosts []post.Post `yaml:"published_posts"` - Assets map[string]string -} - -func loadTestData(path string) (testData, error) { - - f, err := os.Open(path) - if err != nil { - return testData{}, fmt.Errorf("opening file: %w", err) - } - defer f.Close() - - var res testData - - if err := yaml.NewDecoder(f).Decode(&res); err != nil { - return testData{}, fmt.Errorf("decoding file contents: %w", err) - } - - return res, nil -} - -func main() { - - ctx := context.Background() - - cfg := cfgpkg.NewBlogCfg(cfgpkg.Params{}) - - var dataDir cfgpkg.DataDir - dataDir.SetupCfg(cfg) - defer dataDir.Close() - ctx = mctx.WithAnnotator(ctx, &dataDir) - - testDataPath := cfg.String("test-data-path", "./test-data.yml", "File containing the data to be loaded in") - - // 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) - } - - testDataDir := filepath.Dir(*testDataPath) - - testData, err := loadTestData(*testDataPath) - if err != nil { - logger.Fatal(ctx, "loading test data", err) - } - - postDB, err := post.NewSQLDB(dataDir) - if err != nil { - logger.Fatal(ctx, "initializing post sql db", err) - } - defer postDB.Close() - - { - - postStore := post.NewStore(postDB) - - now := time.Now().Truncate(time.Hour) - - for _, post := range testData.PublishedPosts { - - ctx := mctx.Annotate(ctx, - "postID", post.ID, - "now", now) - - if _, err := postStore.Set(post, now); err != nil { - logger.Fatal(ctx, "setting post", err) - } - - logger.Info(ctx, "set post") - - now = now.Add(-1 * time.Hour) - } - - } - - { - assetStore := post.NewAssetStore(postDB) - - setAsset := func(assetID, assetPath string) error { - assetFullPath := filepath.Join(testDataDir, assetPath) - - f, err := os.Open(assetFullPath) - if err != nil { - return fmt.Errorf("opening %q for reading: %w", assetFullPath, err) - } - defer f.Close() - - return assetStore.Set(assetID, f) - } - - for assetID, assetPath := range testData.Assets { - - ctx := mctx.Annotate(ctx, - "assetID", assetID, - "assetPath", assetPath) - - if err := setAsset(assetID, assetPath); err != nil { - logger.Fatal(ctx, "setting asset", err) - } - - logger.Info(ctx, "set asset") - } - } -} diff --git a/srv/src/cmd/load-test-data/test-data.yml b/srv/src/cmd/load-test-data/test-data.yml deleted file mode 100644 index 51a08c5..0000000 --- a/srv/src/cmd/load-test-data/test-data.yml +++ /dev/null @@ -1,85 +0,0 @@ ---- - -published_posts: - - - id: markdown-test - title: Markdown Test - description: A little post containing different kinds of markdown elements. - tags: - - foo - series: testing - body: | - - This here's a test post containing various markdown elements in its body. - It's useful for making sure that posts will look good (generally). - - ## Let's Begin - - There's various things worth testing. _Emphasized_ and **bold** text are - great starting points. Also `little bits of code`. - - One might consider making a list of them. - - * A bit normal. - * _A bit emphasized_ - * **A bit bold** - * `A bit of code.` - - So many! - - ### A Subsection - - Crazy. Another way to delineate a subsection is with a horizontal rule. - - ----- - - And it only gets crazier from here! - - Check out this code block. - - ``` - // It's like actually being in the matrix - for !dead { - if awake { - work() - } else { - continue - } - } - ``` - - Edgy. - - #### Side-note - - Did you know that the terms "cyberspace" and "matrix" are attributable to a book from 1984 called _Neuromancer_? - - > The 1999 cyberpunk science fiction film The Matrix particularly draws from Neuromancer both eponym and usage of the term "matrix". - > - Wikipedia - - Here's a real picture of cyberspace. - - ![not a sound stage]({{ AssetURL "galaxy.jpg" }}) - - This has been a great post. - - - id: empty-test - title: Empty Test - description: A post with no content. Might as well test it. - tags: - - foo - - bar - series: testing - body: "" - - - id: little-markdown-test - title: Little Markdown Test - description: A post with almost no content. - tags: - - bar - series: testing - body: | - This page is almost empty. - -assets: - galaxy.jpg: ./galaxy.jpg |