aboutsummaryrefslogtreecommitdiffstats
path: root/icebram
diff options
context:
space:
mode:
authorRobert Ou <rqou@robertou.com>2017-11-15 03:14:14 -0800
committerRobert Ou <rqou@robertou.com>2018-03-31 14:10:36 -0700
commit3bee3cfeadcb57833a90c7789333750676f39e81 (patch)
tree54cd6a8b36740bdd98a4f9dea6c6290ec3d15d59 /icebram
parent9b0603c4bc156b350918c3a8762ffac28b3de42b (diff)
downloadicestorm-3bee3cfeadcb57833a90c7789333750676f39e81.tar.gz
icestorm-3bee3cfeadcb57833a90c7789333750676f39e81.tar.bz2
icestorm-3bee3cfeadcb57833a90c7789333750676f39e81.zip
Mount NODEFS if using emscripten and nodejs
Mounts root directory on `/hostfs` and the current working directory on `/hostcwd`
Diffstat (limited to 'icebram')
-rw-r--r--icebram/icebram.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/icebram/icebram.cc b/icebram/icebram.cc
index 245a0ab..a796f92 100644
--- a/icebram/icebram.cc
+++ b/icebram/icebram.cc
@@ -28,6 +28,10 @@
#include <fstream>
#include <iostream>
+#ifdef __EMSCRIPTEN__
+#include <emscripten.h>
+#endif
+
using std::map;
using std::pair;
using std::vector;
@@ -109,6 +113,18 @@ void help(const char *cmd)
int main(int argc, char **argv)
{
+#ifdef __EMSCRIPTEN__
+ EM_ASM(
+ if (ENVIRONMENT_IS_NODE)
+ {
+ FS.mkdir('/hostcwd');
+ FS.mount(NODEFS, { root: '.' }, '/hostcwd');
+ FS.mkdir('/hostfs');
+ FS.mount(NODEFS, { root: '/' }, '/hostfs');
+ }
+ );
+#endif
+
bool verbose = false;
bool generate = false;