Add gzip functionality to import/export scripts

This commit is contained in:
Cadence Ember
2020-07-13 01:46:06 +12:00
parent 82ee6e6d64
commit d76c4fae25
3 changed files with 36 additions and 8 deletions

View File

@@ -1,11 +1,23 @@
const fs = require("fs").promises
const {gzip} = require("zlib")
const {promisify: p} = require("util")
const pj = require("path").join
const db = require("../src/lib/db")
const targetDir = process.argv.slice(2).includes("--publish") ? "../src/site/html" : ".."
const shouldGzip = process.argv.slice(2).includes("--gzip")
const filename = "users_export.json" + (shouldGzip ? ".gz" : "")
const target = pj(__dirname, targetDir, filename)
;(async () => {
const users = db.prepare("SELECT * FROM Users").all()
const targetDir = process.argv.slice(2).includes("--publish") ? "../src/site/html" : ".."
const target = pj(__dirname, targetDir, "users_export.json")
fs.writeFile(target, JSON.stringify(users), {encoding: "utf8"})
let data = Buffer.from(JSON.stringify(users), "utf8")
if (shouldGzip) {
data = await p(gzip)(data)
}
await fs.writeFile(target, data)
console.log(`Users exported to ${target}`)
})()