From e0cda1ff91b7969bb3a9e27ca6e8b0f5f6697c15 Mon Sep 17 00:00:00 2001 From: stephan Date: Fri, 20 May 2022 13:27:57 +0000 Subject: [PATCH] Add a terminal-style view to the fiddle app, based on jquery.terminal. FossilOrigin-Name: 82b57f2e212128ac83af577c9fe0a19814c6771c058d04eadf7b54489c1ad55e --- Makefile.in | 43 ++++++++---- ext/fiddle/fiddle.in.html | 21 +++--- ext/fiddle/jqterm/jqterm-bundle.min.js | 83 +++++++++++++++++++++++ ext/fiddle/jqterm/jquery.terminal.min.css | 17 +++++ ext/fiddle/module-post.js | 13 +++- ext/fiddle/module-pre.js | 8 +++ manifest | 23 ++++--- manifest.uuid | 2 +- 8 files changed, 173 insertions(+), 37 deletions(-) create mode 100644 ext/fiddle/jqterm/jqterm-bundle.min.js create mode 100644 ext/fiddle/jqterm/jquery.terminal.min.css diff --git a/Makefile.in b/Makefile.in index 977f0da953..5eede2f4ce 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1519,29 +1519,42 @@ sqlite3.dll: $(REAL_LIBOBJ) sqlite3.def # fiddle_dir = ext/fiddle fiddle_html = $(fiddle_dir)/fiddle.html -fiddle_generated = $(fiddle_html) \ - $(fiddle_dir)/fiddle.js \ - $(fiddle_dir)/fiddle.wasm +fiddle_html_in = $(fiddle_dir)/fiddle.in.html +fiddle_css = $(fiddle_dir)/fiddle.css +fiddle_pre_js = $(fiddle_dir)/_module-pre.js +fiddle_post_js = $(fiddle_dir)/module-post.js +# ^^^ note that pre_js is currently generated but post_js is not! +fiddle_generated = clean-fiddle: - rm -f $(fiddle_generated) + rm -f $(fiddle_html) \ + $(fiddle_css) \ + $(fiddle_dir)/fiddle.js \ + $(fiddle_dir)/fiddle.wasm \ + $(fiddle_pre_js) clean: clean-fiddle -#emcc_opt = -O0 -#emcc_opt = -O1 -#emcc_opt = -O2 -#emcc_opt = -O3 +#Optimization flags: -O0, -O1, -O2, -O3, -Oz emcc_opt = -Oz emcc_flags = $(emcc_opt) $(SHELL_OPT) \ -sEXPORTED_RUNTIME_METHODS=ccall,cwrap \ -sEXPORTED_FUNCTIONS=_fiddle_exec \ -sEXIT_RUNTIME=1 \ - --pre-js $(fiddle_dir)/module-pre.js \ - --post-js $(fiddle_dir)/module-post.js \ - --shell-file $(fiddle_dir)/fiddle.in.html \ + --pre-js $(fiddle_pre_js) \ + --post-js $(fiddle_post_js) \ + --shell-file $(fiddle_html_in) \ $(fiddle_cflags) # $(fiddle_cflags) is intended to be passed to make via the CLI in -# order to override, e.g., -Ox for one-off builds. +# order to add/override for one-off builds. +fiddle_css_in = $(fiddle_dir)/jqterm/jquery.terminal.min.css +$(fiddle_css): Makefile $(fiddle_css_in) + cat $(fiddle_css_in) > $@ +fiddle_pre_js_in = $(fiddle_dir)/jqterm/jqterm-bundle.min.js \ + $(fiddle_dir)/module-pre.js +$(fiddle_pre_js): Makefile $(fiddle_pre_js_in) + cat $(fiddle_pre_js_in) > $@ +# Note that compilation to $(fiddle_html) generates fiddle.wasm and +# fiddle.js as well. $(fiddle_html): Makefile sqlite3.c shell.c \ - $(fiddle_dir)/fiddle.in.html \ - $(fiddle_dir)/module-pre.js $(fiddle_dir)/module-post.js + $(fiddle_html_in) $(fiddle_pre_js) $(fiddle_post_js) emcc -o $@ $(emcc_flags) sqlite3.c shell.c -fiddle: $(fiddle_html) + @chmod -x $(fiddle_dir)/fiddle.wasm +fiddle: $(fiddle_css) $(fiddle_html) diff --git a/ext/fiddle/fiddle.in.html b/ext/fiddle/fiddle.in.html index d82f2e523a..39701616e0 100644 --- a/ext/fiddle/fiddle.in.html +++ b/ext/fiddle/fiddle.in.html @@ -4,8 +4,7 @@ sqlite3 fiddle (experimental!) - +