From 60018dd9f5b5022d462317231ab49c7007e784dc Mon Sep 17 00:00:00 2001 From: Brian Picciano Date: Thu, 18 Aug 2022 20:27:40 -0600 Subject: [PATCH] load some test data when starting the dev shell --- srv/default.nix | 14 +-- srv/src/cmd/load-test-data/galaxy.jpg | Bin 0 -> 69901 bytes srv/src/cmd/load-test-data/main.go | 129 +++++++++++++++++++++++ srv/src/cmd/load-test-data/test-data.yml | 85 +++++++++++++++ srv/src/go.mod | 1 + srv/src/go.sum | 2 + 6 files changed, 224 insertions(+), 7 deletions(-) create mode 100644 srv/src/cmd/load-test-data/galaxy.jpg create mode 100644 srv/src/cmd/load-test-data/main.go create mode 100644 srv/src/cmd/load-test-data/test-data.yml diff --git a/srv/default.nix b/srv/default.nix index a1ce925..6bae2a8 100644 --- a/srv/default.nix +++ b/srv/default.nix @@ -2,6 +2,7 @@ bash, go, buildGoModule, + sqlite, writeScript, writeText, stdenv, @@ -51,13 +52,12 @@ shell = stdenv.mkDerivation { name = "mediocre-blog-srv-shell"; - buildInputs = [ go ]; - shellHook = ''source ${init}''; - }; + buildInputs = [ go sqlite ]; + shellHook = '' + source ${init} - shellWithBuild = stdenv.mkDerivation { - name = "mediocre-blog-srv-shell-with-build"; - buildInputs = [ go build ]; - shellHook = ''source ${init}''; + echo "Loading test data..." + (cd srv/src/cmd/load-test-data && go run main.go) + ''; }; } diff --git a/srv/src/cmd/load-test-data/galaxy.jpg b/srv/src/cmd/load-test-data/galaxy.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a2ee2d1989747f8d96e1188222dc50985ccc67ac GIT binary patch literal 69901 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 J>*u_G|Jn3l_Sygd literal 0 HcmV?d00001 diff --git a/srv/src/cmd/load-test-data/main.go b/srv/src/cmd/load-test-data/main.go new file mode 100644 index 0000000..01d3b71 --- /dev/null +++ b/srv/src/cmd/load-test-data/main.go @@ -0,0 +1,129 @@ +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 new file mode 100644 index 0000000..51a08c5 --- /dev/null +++ b/srv/src/cmd/load-test-data/test-data.yml @@ -0,0 +1,85 @@ +--- + +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 diff --git a/srv/src/go.mod b/srv/src/go.mod index f65034f..802cb89 100644 --- a/srv/src/go.mod +++ b/srv/src/go.mod @@ -22,4 +22,5 @@ require ( golang.org/x/image v0.0.0-20220413100746-70e8d0d3baa9 golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e // indirect golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/srv/src/go.sum b/srv/src/go.sum index d8139cc..60fbd42 100644 --- a/srv/src/go.sum +++ b/srv/src/go.sum @@ -256,4 +256,6 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=