diff options
author | Robert Ou <rqou@robertou.com> | 2017-11-15 03:14:14 -0800 |
---|---|---|
committer | Robert Ou <rqou@robertou.com> | 2018-03-31 14:10:36 -0700 |
commit | 3bee3cfeadcb57833a90c7789333750676f39e81 (patch) | |
tree | 54cd6a8b36740bdd98a4f9dea6c6290ec3d15d59 /icemulti | |
parent | 9b0603c4bc156b350918c3a8762ffac28b3de42b (diff) | |
download | icestorm-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 'icemulti')
-rw-r--r-- | icemulti/icemulti.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/icemulti/icemulti.cc b/icemulti/icemulti.cc index 65ae6b6..4bc0919 100644 --- a/icemulti/icemulti.cc +++ b/icemulti/icemulti.cc @@ -24,6 +24,10 @@ #include <stdlib.h> #include <string.h> +#ifdef __EMSCRIPTEN__ +#include <emscripten.h> +#endif + #define log(...) fprintf(stderr, __VA_ARGS__); #define error(...) do { fprintf(stderr, "%s: ", program_short_name); fprintf(stderr, __VA_ARGS__); exit(EXIT_FAILURE); } while (0) @@ -178,6 +182,18 @@ void usage() 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 + int c; char *endptr = NULL; bool coldboot = false; |