diff options
author | Alexander Neonxp Kiryukhin <i@neonxp.ru> | 2024-10-06 17:04:37 +0300 |
---|---|---|
committer | Alexander Neonxp Kiryukhin <i@neonxp.ru> | 2024-10-06 17:04:37 +0300 |
commit | 6160b4fdc5f37e4ceaa6b3c5acc855f466049d61 (patch) | |
tree | b6e41f9cad22515a61cc50b0a82d98ee55e0c3e3 /cmd/app/importer | |
parent | 81b13617c4d0ca68afb181d1105386f0c339864d (diff) |
Первая версия
Diffstat (limited to 'cmd/app/importer')
-rw-r--r-- | cmd/app/importer/importer.go | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/cmd/app/importer/importer.go b/cmd/app/importer/importer.go new file mode 100644 index 0000000..0cc9bb7 --- /dev/null +++ b/cmd/app/importer/importer.go @@ -0,0 +1,47 @@ +package importer + +import ( + "encoding/json" + "os" + + "github.com/urfave/cli/v2" + "sh.org.ru/pkg/config" + "sh.org.ru/pkg/db" + "sh.org.ru/pkg/model" +) + +func Run(c *cli.Context) error { + configFile := c.String("config") + cfg, err := config.New(configFile) + if err != nil { + return err + } + db := db.New(cfg.DB) + + file := c.Args().First() + + quotes := []string{} + + fp, err := os.Open(file) + if err != nil { + return err + } + defer fp.Close() + + if err := json.NewDecoder(fp).Decode("es); err != nil { + return err + } + + for _, text := range quotes { + q := &model.Quote{ + Quote: text, + Approved: true, + Archive: true, + } + if _, err := db.NewInsert().Model(q).Exec(c.Context); err != nil { + return err + } + } + + return nil +} |