diff options
Diffstat (limited to 'web/gotosocial-styling/index.js')
-rw-r--r-- | web/gotosocial-styling/index.js | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/web/gotosocial-styling/index.js b/web/gotosocial-styling/index.js deleted file mode 100644 index 43384a108..000000000 --- a/web/gotosocial-styling/index.js +++ /dev/null @@ -1,85 +0,0 @@ -"use strict"; - -const Promise = require("bluebird"); -const fs = require("fs").promises; -const postcss = require('postcss'); -const {parse} = require("postcss-scss"); -const argv = require('minimist')(process.argv.slice(2)); - -/* - Bundle all postCSS files under the `templates/` directory separately, each prepended with the (variable) contents of ./colors.css - Outputs in plain CSS are in `build/`, split by template -*/ - -const postcssPlugins = ["postcss-strip-inline-comments", "postcss-nested", "postcss-simple-vars", "postcss-color-function"].map((plugin) => require(plugin)()); - -function getTemplates() { - return fs.readdir(`${__dirname}/templates`).then((templates) => { - return templates.map((a) => { - return [a, `${__dirname}/templates/${a}`]; - }); - }); -} - -getTemplates(); - -function bundle([template, path]) { - return Promise.try(() => { - return Promise.all([ - fs.readFile(`${__dirname}/colors.css`, "utf-8"), - fs.readFile(path, "utf-8") - ]); - }).then(([colors, style]) => { - return parse(colors + "\n" + style); - }).then((ast) => { - return postcss(postcssPlugins).process(ast, { - from: template, - to: template - }); - }).then((bundle) => { - return fs.writeFile(`${buildDir}/${template}`, bundle.css); - }).then(() => { - console.log(`Finished writing CSS to ${buildDir}/${template}`); - }); -} - -let buildDir - -// try reading from arguments first -if (argv["build-dir"] != undefined) { - buildDir = argv["build-dir"] -} - -// then try reading from environment variable -if (buildDir == undefined) { - buildDir = process.env.BUILD_DIR; -} - -// then take default -if (buildDir == undefined) { - buildDir = `${__dirname}/build`; -} - -console.log("bundling to", buildDir); - -function bundleAll() { - return getTemplates().then((templates) => { - return Promise.map(templates, bundle); - }); -} - -if (process.env.NODE_ENV != "development") { - bundleAll(); -} else { - const chokidar = require("chokidar"); - console.log("Watching for changes"); - chokidar.watch(`${__dirname}/templates`).on("all", (_, path) => { - if (path.endsWith(".css")) { - bundle([path.split("/").slice(-1)[0], path]); - } - }); - chokidar.watch(`${__dirname}/colors.css`).on("all", () => { - console.log("colors.css updated, rebuilding all templates"); - bundleAll(); - }); -}
\ No newline at end of file |