summaryrefslogtreecommitdiff
path: root/magicthing.mjs
diff options
context:
space:
mode:
authorGravatar Matthew Phillips <matthew@skypack.dev> 2021-03-15 13:22:05 -0400
committerGravatar Matthew Phillips <matthew@skypack.dev> 2021-03-15 13:22:05 -0400
commitaf6b029e95e9c98e6fb9c642915d461b8d7f448e (patch)
treed70972e10884de0363e7ce4dd2a0765dafcf3dc8 /magicthing.mjs
downloadastro-af6b029e95e9c98e6fb9c642915d461b8d7f448e.tar.gz
astro-af6b029e95e9c98e6fb9c642915d461b8d7f448e.tar.zst
astro-af6b029e95e9c98e6fb9c642915d461b8d7f448e.zip
initial commit
Diffstat (limited to 'magicthing.mjs')
-rw-r--r--magicthing.mjs30
1 files changed, 30 insertions, 0 deletions
diff --git a/magicthing.mjs b/magicthing.mjs
new file mode 100644
index 000000000..caaa50972
--- /dev/null
+++ b/magicthing.mjs
@@ -0,0 +1,30 @@
+#!/usr/bin/env node
+import { join as pathJoin, resolve as pathResolve } from 'path';
+
+import generate from './lib/generate.js';
+import devServer from './lib/dev.js';
+
+const root = pathResolve(process.argv[2]);
+
+if(!root) {
+ console.error('Must provide a project root');
+ process.exit(1);
+}
+
+const fileProtocolRoot = `file://${root}/`;
+
+async function run() {
+ const magicConfig = (await import(pathJoin(root, 'magicthing.config.mjs'))).default;
+ magicConfig.projectRoot = new URL(magicConfig.projectRoot + '/', fileProtocolRoot);
+ magicConfig.hmxRoot = new URL(magicConfig.hmxRoot + '/', fileProtocolRoot);
+
+
+ // Should use an args parser eventually
+ if(process.argv.includes('--generate')) {
+ return generate(magicConfig);
+ } else {
+ return devServer(magicConfig);
+ }
+}
+
+run().catch(err => setTimeout(() => {throw err})); \ No newline at end of file