aboutsummaryrefslogtreecommitdiffstats
path: root/app/index.ts
diff options
context:
space:
mode:
authorLeonardo Bishop <me@leonardobishop.com>2023-08-20 11:12:25 +0100
committerLeonardo Bishop <me@leonardobishop.com>2023-08-20 11:22:58 +0100
commit19614388ea6298775d08fe19e67fb22bf90a01da (patch)
tree119d7cd65e731983d8cfcd1b996a68987baf9740 /app/index.ts
Replace web server with static site generator
Diffstat (limited to 'app/index.ts')
-rw-r--r--app/index.ts34
1 files changed, 34 insertions, 0 deletions
diff --git a/app/index.ts b/app/index.ts
new file mode 100644
index 0000000..1cb278a
--- /dev/null
+++ b/app/index.ts
@@ -0,0 +1,34 @@
+import dotenv from 'dotenv-defaults';
+import { logger } from './logger.js';
+import { buildPages } from './builder/build.js';
+
+dotenv.config();
+
+const startDate = new Date();
+
+logger.info('');
+logger.info('panulat, a static site generator');
+logger.info(startDate.toString());
+logger.info('');
+logger.info(`Static directory: ${process.env.STATIC_DIR}`);
+logger.info(` Pages directory: ${process.env.PAGES_DIR}`);
+logger.info(` Views directory: ${process.env.VIEWS_DIR}`);
+logger.info(`Output directory: ${process.env.OUTPUT_DIR}`);
+logger.info(` Webserver: ${process.env.WEBSERVER_ENABLED === 'true' ? 'enabled' : 'disabled'}`);
+logger.info(` Autorebuild: ${process.env.WEBSERVER_AUTOREBUILD === 'true' ? 'enabled' : 'disabled'}`);
+logger.info('');
+
+const {success, errors, pageDirectory} = await buildPages();
+
+logger.info('');
+if (!success) {
+ logger.error(`Build failed. Quitting.`);
+ process.exit(1);
+}
+
+logger.info(`Finished${errors > 0 ? `, with ${errors} errors` : ''}. Build took ${new Date().getTime() - startDate.getTime()}ms.`);
+
+if (process.env.WEBSERVER_ENABLED === 'true') {
+ logger.info('');
+ import('./webserver/webserver.js').then(m => m.start(pageDirectory));
+}