fastled 1.3.11__tar.gz → 1.3.14__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- fastled-1.3.14/DEBUGGER.md +34 -0
- fastled-1.3.14/Dockerfile +58 -0
- fastled-1.3.14/FAQ.md +11 -0
- {fastled-1.3.11 → fastled-1.3.14}/PKG-INFO +9 -3
- {fastled-1.3.11 → fastled-1.3.14}/README.md +8 -2
- {fastled-1.3.11 → fastled-1.3.14}/clean +1 -0
- {fastled-1.3.11 → fastled-1.3.14}/compiler/run.py +7 -34
- {fastled-1.3.11 → fastled-1.3.14}/docker-compose.yml +1 -1
- {fastled-1.3.11/compiler → fastled-1.3.14}/entrypoint.sh +1 -4
- {fastled-1.3.11 → fastled-1.3.14}/pyproject.toml +1 -2
- {fastled-1.3.11 → fastled-1.3.14}/requirements.testing.txt +2 -1
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/__version__.py +1 -1
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/app.py +0 -6
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/compile_server_impl.py +3 -20
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/docker_manager.py +2 -2
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/parse_args.py +8 -6
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/util.py +11 -6
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled.egg-info/PKG-INFO +9 -3
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled.egg-info/SOURCES.txt +3 -11
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled.egg-info/requires.txt +1 -1
- {fastled-1.3.11 → fastled-1.3.14}/test +2 -2
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_version.py +3 -2
- fastled-1.3.11/Dockerfile +0 -85
- fastled-1.3.11/compiler/CMakeLists.txt +0 -139
- fastled-1.3.11/compiler/arduino-pre-process.sh +0 -3
- fastled-1.3.11/compiler/final_prewarm.sh +0 -26
- fastled-1.3.11/compiler/init_runtime.py +0 -112
- fastled-1.3.11/compiler/install-arduino-cli.sh +0 -41
- fastled-1.3.11/compiler/libcompile/CMakeLists.txt +0 -152
- fastled-1.3.11/compiler/prewarm.sh +0 -42
- fastled-1.3.11/compiler/process-ino.py +0 -138
- fastled-1.3.11/compiler/pyproject.toml +0 -22
- fastled-1.3.11/tests/unit/test_version_matches.py +0 -70
- {fastled-1.3.11 → fastled-1.3.14}/.aiderignore +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/.dockerignore +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/.github/workflows/build_multi_docker_image.yml +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/.github/workflows/build_webpage.yml +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/.github/workflows/lint.yml +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/.github/workflows/publish_release.yml +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/.github/workflows/template_build_docker_image.yml +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/.github/workflows/test_build_exe.yml +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/.github/workflows/test_macos.yml +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/.github/workflows/test_ubuntu.yml +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/.github/workflows/test_win.yml +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/.gitignore +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/.pylintrc +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/.vscode/launch.json +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/.vscode/settings.json +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/.vscode/tasks.json +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/LICENSE +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/MANIFEST.in +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/RELEASE.md +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/TODO.md +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/build_exe.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/build_local_docker.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/build_site.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/compiler/debug.sh +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/demo/100dots.html +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/demo/demo_threejs.html +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/demo/micdemo.html +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/demo/mp3upload.html +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/demo/webgl_postprocessing_unreal_bloom.html +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/install +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/install_linux.sh +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/lint +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/setup.cfg +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/setup.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/__init__.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/args.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/assets/example.txt +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/assets/localhost-key.pem +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/assets/localhost.pem +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/cli.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/cli_test.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/cli_test_interactive.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/client_server.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/compile_server.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/filewatcher.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/keyboard.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/keyz.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/live_client.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/open_browser.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/paths.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/print_filter.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/project_init.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/select_sketch_directory.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/server_flask.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/server_start.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/settings.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/site/build.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/site/examples.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/sketch.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/spinner.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/string_diff.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/test/can_run_local_docker_tests.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/test/examples.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/types.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/version.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled/web_compile.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled.egg-info/dependency_links.txt +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled.egg-info/entry_points.txt +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/src/fastled.egg-info/top_level.txt +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/integration/test_build_examples.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/integration/test_examples.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/html/index.html +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_api.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_bad_ino.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_cli.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_compile_server.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_debug_fetch_source_files.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_docker_linux_on_windows.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_embedded_data.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_experimental_cpp_filter.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_filechanger.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_http_server.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_ino/bad/bad.ino +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_ino/bad_platformio/bad_platformio.ino +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_ino/bad_platformio/platformio.ini +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_ino/embedded/data/bigdata.dat +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_ino/embedded/wasm.ino +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_ino/wasm/wasm.ino +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_print_filter.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_project_init.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_server_and_client_seperatly.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_string_diff.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/tests/unit/test_webcompile.py +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/upload_package.sh +0 -0
- {fastled-1.3.11 → fastled-1.3.14}/vscode-plugin/readme +0 -0
@@ -0,0 +1,34 @@
|
|
1
|
+
# Debugger
|
2
|
+
|
3
|
+
The `fastled` app supports full C++ debugging in your browser.
|
4
|
+
|
5
|
+
This includes:
|
6
|
+
|
7
|
+
* Breakpoints
|
8
|
+
* Stepping
|
9
|
+
* Inspecting variables
|
10
|
+
* Stack
|
11
|
+
|
12
|
+
|
13
|
+

|
14
|
+
|
15
|
+
|
16
|
+
## Enabling
|
17
|
+
|
18
|
+
* Install the [C++ Devtools Plugin for Chrome/Brave/Chromium](https://chromewebstore.google.com/detail/cc++-devtools-support-dwa/pdcpmagijalfljmkmjngeonclgbbannb)
|
19
|
+
* Compile your sketch with `--debug` flag
|
20
|
+
|
21
|
+
|
22
|
+
## Using
|
23
|
+
|
24
|
+
* Launch debugging mode with `fastled --debug`
|
25
|
+
* Open the Devtools panel
|
26
|
+
* In Chrome, press `F12`
|
27
|
+
* Or right click on the page and select `Inspect`
|
28
|
+
* Then click the `Sources` -> `Page`
|
29
|
+
* You should now see source code for both fastled core and your sketch.
|
30
|
+
|
31
|
+
|
32
|
+
## Notable features
|
33
|
+
|
34
|
+
* If you use FASTLED_ASSERT(...) and it triggers while devtools is open, the debugger will be invoked and the program will pause at the point the assert fired.
|
@@ -0,0 +1,58 @@
|
|
1
|
+
|
2
|
+
# The only reason we use docker is because of the fastled-wasm-compiler.
|
3
|
+
FROM niteris/fastled-wasm-compiler:latest
|
4
|
+
|
5
|
+
|
6
|
+
COPY requirements.testing.txt /install/requirements.txt
|
7
|
+
# Extract fastled-wasm-server version from requirements.txt
|
8
|
+
RUN \
|
9
|
+
grep -oP '(?<=fastled-wasm-server[<>=!]=?)[^ \n#]+' /install/requirements.txt > /install/version.txt && \
|
10
|
+
cat /install/version.txt > /install/requirements.txt && \
|
11
|
+
uv pip install --system -r /install/requirements.txt --refresh || \
|
12
|
+
uv pip install --system -r /install/requirements.txt --refresh || \
|
13
|
+
uv pip install --system -r /install/requirements.txt --refresh
|
14
|
+
|
15
|
+
# FIRST PRE-WARM CYCLE and initial setup: Download the fastled repo from the github and pre-warm the cache with a compilation.
|
16
|
+
# This is by far the most expensive part of the build, because platformio needs to download initial tools. This
|
17
|
+
# pre-warm cycle is "sticky" and tends to stay in the cache for a long time since docker is very relaxed about
|
18
|
+
# invalidating cache layers that clone a github repo.
|
19
|
+
|
20
|
+
ARG FASTLED_BUILD_DAY=echo $(date +'%Y-%m-%d')
|
21
|
+
ENV FASTLED_BUILD_DAY=${FASTLED_BUILD_DAY}
|
22
|
+
|
23
|
+
|
24
|
+
WORKDIR /js
|
25
|
+
|
26
|
+
|
27
|
+
RUN mkdir -p /js/compiler
|
28
|
+
|
29
|
+
|
30
|
+
# COPY compiler/*.py /js/compiler
|
31
|
+
COPY entrypoint.sh /entrypoint.sh
|
32
|
+
COPY compiler/run.py /js/run.py
|
33
|
+
COPY compiler/debug.sh /js/debug.sh
|
34
|
+
|
35
|
+
# COPY compiler/entrypoint.sh /entrypoint.sh
|
36
|
+
# RUN chmod +x /entrypoint.sh && dos2unix /entrypoint.sh
|
37
|
+
|
38
|
+
RUN cd /js && chmod +x debug.sh && dos2unix *.sh
|
39
|
+
RUN chmod +x /entrypoint.sh && dos2unix /entrypoint.sh
|
40
|
+
|
41
|
+
# RSYNC DISABLED FOR NOW
|
42
|
+
# now sync local to the source directory.
|
43
|
+
# RUN rsync -av /host/fastled/ /js/fastled/ && rm -rf /host/fastled
|
44
|
+
|
45
|
+
# RUN python /js/init_runtime.py || true
|
46
|
+
|
47
|
+
|
48
|
+
# SECOND PRE-WARM CYCLE: Copy the fastled repo from the host machine and pre-warm the cache with that compilation. This will
|
49
|
+
# be much quicker than the first pre-warm cycle.
|
50
|
+
# RUN /js/prewarm.sh --force > /logs/prewarm.log.2 || true
|
51
|
+
|
52
|
+
# Now timestamp the image and store it at the end of the build.
|
53
|
+
RUN date > /image_timestamp.txt
|
54
|
+
|
55
|
+
ENTRYPOINT ["/entrypoint.sh"]
|
56
|
+
CMD ["python", "/js/run.py", "server"]
|
57
|
+
|
58
|
+
# CMD ["/bin/bash", "/entrypoint.sh"]
|
fastled-1.3.14/FAQ.md
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
# FAQ
|
2
|
+
|
3
|
+
### Why is this compiler so fast?
|
4
|
+
|
5
|
+
The compiler image uses compile caching. This cache is pre-warmed by compiling the Blink sketch, and then frozen. This happens for debug/release/quick builds, which is why it’s so blazing fast. The whole compiler toolchain is cocked and ready to fire and then frozen in place right before it compiles your sketch.
|
6
|
+
|
7
|
+
The entire Fastled library pre-compiled as a static archive and headers made available to the sketch.
|
8
|
+
|
9
|
+
During compile time, the compiler only has to consider your code and linking against a static lib.
|
10
|
+
|
11
|
+
All of this together has eliminated 90% of the compile time. But this number will increase to 97% when I apply some of the more painful refactors to eliminate the emscripten steps (--bind) that happen at final program generation time.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: fastled
|
3
|
-
Version: 1.3.
|
3
|
+
Version: 1.3.14
|
4
4
|
Summary: FastLED Wasm Compiler
|
5
5
|
Home-page: https://github.com/zackees/fastled-wasm
|
6
6
|
Maintainer: Zachary Vorhies
|
@@ -20,7 +20,7 @@ Requires-Dist: progress>=1.6
|
|
20
20
|
Requires-Dist: watchfiles>=1.0.5
|
21
21
|
Requires-Dist: Flask>=3.0.0
|
22
22
|
Requires-Dist: livereload
|
23
|
-
Requires-Dist:
|
23
|
+
Requires-Dist: disklru>=2.0.4
|
24
24
|
Dynamic: home-page
|
25
25
|
Dynamic: license-file
|
26
26
|
Dynamic: maintainer
|
@@ -91,7 +91,11 @@ https://github.com/user-attachments/assets/64ae0e6c-5f8b-4830-ab87-dcc25bc61218
|
|
91
91
|
pip install fastled
|
92
92
|
```
|
93
93
|
|
94
|
-
|
94
|
+
# Debugger
|
95
|
+
|
96
|
+
This tool features full C++ debugging through the browser.
|
97
|
+
|
98
|
+
For instructions on setup see [DEBUGGER.md](DEBUGGER.md)
|
95
99
|
|
96
100
|
# Command Line Use
|
97
101
|
|
@@ -389,12 +393,14 @@ A: A big chunk of space is being used by unnecessary javascript `emscripten` bun
|
|
389
393
|
|
390
394
|
|
391
395
|
|
396
|
+
|
392
397
|
live-server --https --port=8416 --host=localhost . --cert=C:/Users/niteris/dev/fastled-wasm/src/fastled/assets/localhost-key.pem --key=C:/Users/niteris/dev/fastled-wasm/src/fastled/assets/localhost.pem --no-browser
|
393
398
|
|
394
399
|
|
395
400
|
live-server --https --cert=src/fastled/assets/localhost.pem --key=src/fastled/assets/localhost-key.pem --port=5500
|
396
401
|
|
397
402
|
|
403
|
+
|
398
404
|
## Performance
|
399
405
|
|
400
406
|
```
|
@@ -64,7 +64,11 @@ https://github.com/user-attachments/assets/64ae0e6c-5f8b-4830-ab87-dcc25bc61218
|
|
64
64
|
pip install fastled
|
65
65
|
```
|
66
66
|
|
67
|
-
|
67
|
+
# Debugger
|
68
|
+
|
69
|
+
This tool features full C++ debugging through the browser.
|
70
|
+
|
71
|
+
For instructions on setup see [DEBUGGER.md](DEBUGGER.md)
|
68
72
|
|
69
73
|
# Command Line Use
|
70
74
|
|
@@ -362,12 +366,14 @@ A: A big chunk of space is being used by unnecessary javascript `emscripten` bun
|
|
362
366
|
|
363
367
|
|
364
368
|
|
369
|
+
|
365
370
|
live-server --https --port=8416 --host=localhost . --cert=C:/Users/niteris/dev/fastled-wasm/src/fastled/assets/localhost-key.pem --key=C:/Users/niteris/dev/fastled-wasm/src/fastled/assets/localhost.pem --no-browser
|
366
371
|
|
367
372
|
|
368
373
|
live-server --https --cert=src/fastled/assets/localhost.pem --key=src/fastled/assets/localhost-key.pem --port=5500
|
369
374
|
|
370
375
|
|
376
|
+
|
371
377
|
## Performance
|
372
378
|
|
373
379
|
```
|
@@ -441,4 +447,4 @@ A: A big chunk of space is being used by unnecessary javascript `emscripten` bun
|
|
441
447
|
1.49
|
442
448
|
2.20 ccache em++ -o .pio/build/wasm/program --bind -fuse-ld=lld -sWASM=1 -sALLOW_MEMORY_GROWTH=1 -sINITIAL_MEMORY=134217728 -sEXPORTED_RUNTIME_METHODS=['ccall','cwrap','stringToUTF8','lengthBytesUTF8'] -sEXPORTED_FUNCTIONS=['_malloc','_free','_extern_setup','_extern_loop','_fastled_declare_files'] --no-entry -sERROR_ON_WASM_CHANGES_AFTER_LINK -sMODULARIZE=1 -sEXPORT_NAME=fastled -o /js/.pio/build/wasm/fastled.js .pio/build/wasm/libbb9/fastled/FastLED.o .pio/build/wasm/libbb9/fastled/bitswap.o .pio/build/wasm/libbb9/fastled/cled_controller.o .pio/build/wasm/libbb9/fastled/colorpalettes.o .pio/build/wasm/libbb9/fastled/crgb.o .pio/build/wasm/libbb9/fastled/fl/allocator.o .pio/build/wasm/libbb9/fastled/fl/audio.o .pio/build/wasm/libbb9/fastled/fl/bilinear_expansion.o .pio/build/wasm/libbb9/fastled/fl/blur.o .pio/build/wasm/libbb9/fastled/fl/bytestreammemory.o .pio/build/wasm/libbb9/fastled/fl/colorutils.o .pio/build/wasm/libbb9/fastled/fl/downscale.o .pio/build/wasm/libbb9/fastled/fl/engine_events.o .pio/build/wasm/libbb9/fastled/fl/fft.o .pio/build/wasm/libbb9/fastled/fl/fft_impl.o .pio/build/wasm/libbb9/fastled/fl/file_system.o .pio/build/wasm/libbb9/fastled/fl/fill.o .pio/build/wasm/libbb9/fastled/fl/five_bit_hd_gamma.o .pio/build/wasm/libbb9/fastled/fl/gradient.o .pio/build/wasm/libbb9/fastled/fl/json.o .pio/build/wasm/libbb9/fastled/fl/leds.o .pio/build/wasm/libbb9/fastled/fl/line_simplification.o .pio/build/wasm/libbb9/fastled/fl/noise_woryley.o .pio/build/wasm/libbb9/fastled/fl/ptr.o .pio/build/wasm/libbb9/fastled/fl/raster_sparse.o .pio/build/wasm/libbb9/fastled/fl/rectangular_draw_buffer.o .pio/build/wasm/libbb9/fastled/fl/screenmap.o .pio/build/wasm/libbb9/fastled/fl/sin32.o .pio/build/wasm/libbb9/fastled/fl/str.o .pio/build/wasm/libbb9/fastled/fl/strstream.o .pio/build/wasm/libbb9/fastled/fl/stub_main.o .pio/build/wasm/libbb9/fastled/fl/tile2x2.o .pio/build/wasm/libbb9/fastled/fl/time_alpha.o .pio/build/wasm/libbb9/fastled/fl/transform.o .pio/build/wasm/libbb9/fastled/fl/type_traits.o .pio/build/wasm/libbb9/fastled/fl/ui.o .pio/build/wasm/libbb9/fastled/fl/wave_simulation.o .pio/build/wasm/libbb9/fastled/fl/wave_simulation_real.o .pio/build/wasm/libbb9/fastled/fl/xmap.o .pio/build/wasm/libbb9/fastled/fl/xymap.o .pio/build/wasm/libbb9/fastled/fl/xypath.o .pio/build/wasm/libbb9/fastled/fl/xypath_impls.o .pio/build/wasm/libbb9/fastled/fl/xypath_renderer.o .pio/build/wasm/libbb9/fastled/fx/2d/blend.o .pio/build/wasm/libbb9/fastled/fx/2d/noisepalette.o .pio/build/wasm/libbb9/fastled/fx/2d/scale_up.o .pio/build/wasm/libbb9/fastled/fx/2d/wave.o .pio/build/wasm/libbb9/fastled/fx/frame.o .pio/build/wasm/libbb9/fastled/fx/fx_engine.o .pio/build/wasm/libbb9/fastled/fx/time.o .pio/build/wasm/libbb9/fastled/fx/video.o .pio/build/wasm/libbb9/fastled/fx/video/frame_interpolator.o .pio/build/wasm/libbb9/fastled/fx/video/frame_tracker.o .pio/build/wasm/libbb9/fastled/fx/video/pixel_stream.o .pio/build/wasm/libbb9/fastled/fx/video/video_impl.o .pio/build/wasm/libbb9/fastled/hsv2rgb.o .pio/build/wasm/libbb9/fastled/lib8tion.o .pio/build/wasm/libbb9/fastled/noise.o .pio/build/wasm/libbb9/fastled/platforms.o .pio/build/wasm/libbb9/fastled/platforms/arm/k20/clockless_objectfled.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/clockless_i2s_esp32s3.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/i2s/i2s_esp32dev.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_4/idf4_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_4/idf4_rmt_impl.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_5/idf5_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/rmt_5/strip_rmt.o .pio/build/wasm/libbb9/fastled/platforms/esp/32/spi_ws2812/strip_spi.o .pio/build/wasm/libbb9/fastled/platforms/wasm/active_strip_data.o .pio/build/wasm/libbb9/fastled/platforms/wasm/compiler/Arduino.o .pio/build/wasm/libbb9/fastled/platforms/wasm/engine_listener.o .pio/build/wasm/libbb9/fastled/platforms/wasm/fs_wasm.o .pio/build/wasm/libbb9/fastled/platforms/wasm/js.o .pio/build/wasm/libbb9/fastled/platforms/wasm/timer.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/audio.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/button.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/checkbox.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/description.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/number_field.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/slider.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/title.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/ui_internal.o .pio/build/wasm/libbb9/fastled/platforms/wasm/ui/ui_manager.o .pio/build/wasm/libbb9/fastled/power_mgt.o .pio/build/wasm/libbb9/fastled/rgbw.o .pio/build/wasm/libbb9/fastled/sensors/digital_pin.o .pio/build/wasm/libbb9/fastled/sensors/pir.o .pio/build/wasm/libbb9/fastled/simplex.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/cq_kernel.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/kiss_fft.o .pio/build/wasm/libbb9/fastled/third_party/cq_kernel/kiss_fftr.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_api.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_rmt_dev.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_rmt_encoder.o .pio/build/wasm/libbb9/fastled/third_party/espressif/led_strip/src/led_strip_spi_dev.o .pio/build/wasm/libbb9/fastled/third_party/object_fled/src/OjectFLED.o .pio/build/wasm/libbb9/fastled/transpose8x1_noinline.o .pio/build/wasm/libbb9/fastled/wiring.o .pio/build/wasm/src/wasm.ino.o -L.pio/build/wasm
|
443
449
|
3.61 ========================= [SUCCESS] Took 3.20 seconds =========================
|
444
|
-
```
|
450
|
+
```
|
@@ -6,8 +6,8 @@ import warnings
|
|
6
6
|
from pathlib import Path
|
7
7
|
from typing import Tuple
|
8
8
|
|
9
|
-
from
|
10
|
-
from
|
9
|
+
from fastled_wasm_compiler.compiler import Compiler
|
10
|
+
from fastled_wasm_compiler.paths import VOLUME_MAPPED_SRC
|
11
11
|
|
12
12
|
_PORT = os.environ.get("PORT", 80)
|
13
13
|
|
@@ -16,33 +16,6 @@ _CHOICES = ["compile", "server"]
|
|
16
16
|
HERE = Path(__file__).parent
|
17
17
|
|
18
18
|
|
19
|
-
def _update_fastled() -> None:
|
20
|
-
# NOT ENABLED YET
|
21
|
-
if True:
|
22
|
-
return
|
23
|
-
is_render = os.environ.get("RENDER", "false") == "true"
|
24
|
-
if not is_render:
|
25
|
-
print("Skipping finalprewarm...")
|
26
|
-
return
|
27
|
-
git_path = "/git/fastled"
|
28
|
-
fastled_path = "/js/fastled"
|
29
|
-
subprocess.run(["git", "fetch", "origin"], cwd=git_path)
|
30
|
-
subprocess.run(["git", "reset", "--hard", "origin/master"], cwd=git_path)
|
31
|
-
subprocess.run(
|
32
|
-
[
|
33
|
-
"rsync",
|
34
|
-
"-av",
|
35
|
-
"--info=NAME",
|
36
|
-
"--delete",
|
37
|
-
f"{git_path}/",
|
38
|
-
f"{fastled_path}/",
|
39
|
-
"--exclude",
|
40
|
-
".git",
|
41
|
-
],
|
42
|
-
cwd="/js",
|
43
|
-
)
|
44
|
-
|
45
|
-
|
46
19
|
def _parse_args() -> Tuple[argparse.Namespace, list[str]]:
|
47
20
|
parser = argparse.ArgumentParser(
|
48
21
|
description="Run compile.py with additional arguments"
|
@@ -102,16 +75,16 @@ def _run_compile(unknown_args: list[str]) -> int:
|
|
102
75
|
def main() -> int:
|
103
76
|
print("Running...")
|
104
77
|
args, unknown_args = _parse_args()
|
105
|
-
|
106
|
-
|
107
|
-
code_sync = CodeSync(
|
78
|
+
compiler = Compiler(
|
108
79
|
volume_mapped_src=VOLUME_MAPPED_SRC,
|
109
|
-
rsync_dest=Path("/invalid/path"),
|
110
80
|
)
|
111
|
-
|
81
|
+
compiler.update_src()
|
112
82
|
|
113
83
|
try:
|
114
84
|
if args.mode == "compile":
|
85
|
+
warnings.warn(
|
86
|
+
"The compile mode is deprecated and may fail. Use server mode instead."
|
87
|
+
)
|
115
88
|
rtn = _run_compile(unknown_args)
|
116
89
|
return rtn
|
117
90
|
elif args.mode == "server":
|
@@ -4,12 +4,9 @@
|
|
4
4
|
source /emsdk/emsdk_env.sh
|
5
5
|
export PATH="$PATH:/emsdk/upstream/bin"
|
6
6
|
|
7
|
-
# initialize runtime
|
8
|
-
python init_runtime.py
|
9
|
-
|
10
7
|
# only do the final prewarm if RUNTIME_PREWARM is set to "1"
|
11
8
|
if [[ "${RUNTIME_PREWARM:-0}" == "1" ]]; then
|
12
|
-
|
9
|
+
uv run -m fastled_wasm_compiler.cli_update_from_master
|
13
10
|
fi
|
14
11
|
|
15
12
|
# hand off to the main command
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# IMPORTANT! There's a bug in github which will REJECT any version update
|
2
2
|
# that has any other change in the repo. Please bump the version as the
|
3
3
|
# ONLY change in a commit, or else the pypi update and the release will fail.
|
4
|
-
__version__ = "1.3.
|
4
|
+
__version__ = "1.3.14"
|
5
5
|
|
6
6
|
__version_url_latest__ = "https://raw.githubusercontent.com/zackees/fastled-wasm/refs/heads/main/src/fastled/__version__.py"
|
@@ -13,12 +13,6 @@ from fastled.filewatcher import file_watcher_set
|
|
13
13
|
from fastled.parse_args import Args, parse_args
|
14
14
|
from fastled.sketch import find_sketch_directories, looks_like_fastled_repo
|
15
15
|
|
16
|
-
# from fastled.sketch import (
|
17
|
-
# find_sketch_directories,
|
18
|
-
# looks_like_fastled_repo,
|
19
|
-
# looks_like_sketch_directory,
|
20
|
-
# )
|
21
|
-
|
22
16
|
|
23
17
|
def run_server(args: Args) -> int:
|
24
18
|
interactive = args.interactive
|
@@ -18,7 +18,7 @@ from fastled.docker_manager import (
|
|
18
18
|
from fastled.settings import DEFAULT_CONTAINER_NAME, IMAGE_NAME, SERVER_PORT
|
19
19
|
from fastled.sketch import looks_like_fastled_repo
|
20
20
|
from fastled.types import BuildMode, CompileResult, CompileServerError
|
21
|
-
from fastled.util import port_is_free
|
21
|
+
from fastled.util import port_is_free, print_banner
|
22
22
|
|
23
23
|
SERVER_OPTIONS = [
|
24
24
|
"--allow-shutdown", # Allow the server to be shut down without a force kill.
|
@@ -221,9 +221,8 @@ class CompileServerImpl:
|
|
221
221
|
ports = {INTERNAL_DOCKER_PORT: port}
|
222
222
|
volumes = []
|
223
223
|
if self.fastled_src_dir:
|
224
|
-
|
225
|
-
|
226
|
-
)
|
224
|
+
msg = f"FastLED REPO updates enabled!!\n\nMounting FastLED source directory\n{self.fastled_src_dir} into container\n/host/fastled/src"
|
225
|
+
print_banner(msg)
|
227
226
|
volumes.append(
|
228
227
|
Volume(
|
229
228
|
host_path=str(self.fastled_src_dir),
|
@@ -249,22 +248,6 @@ class CompileServerImpl:
|
|
249
248
|
# to allow for interactive compilation
|
250
249
|
# interactive_sources = list(INTERACTIVE_SOURCES)
|
251
250
|
interactive_sources: list[tuple[Path, str]] = []
|
252
|
-
init_runtime_py = (
|
253
|
-
Path(self.fastled_src_dir)
|
254
|
-
/ ".."
|
255
|
-
/ ".."
|
256
|
-
/ "fastled-wasm"
|
257
|
-
/ "compiler"
|
258
|
-
/ "init_runtime.py"
|
259
|
-
)
|
260
|
-
if init_runtime_py.exists():
|
261
|
-
# fastled-wasm is in a sister directory, mapping this in to the container.
|
262
|
-
mapping = (
|
263
|
-
init_runtime_py,
|
264
|
-
"/js/init_runtime.py",
|
265
|
-
)
|
266
|
-
interactive_sources.append(mapping)
|
267
|
-
|
268
251
|
src_host: Path
|
269
252
|
dst_container: str
|
270
253
|
for src_host, dst_container in interactive_sources:
|
@@ -227,7 +227,7 @@ def set_force_remove_image_previous(new_value: str | None = None) -> None:
|
|
227
227
|
if new_value is not None:
|
228
228
|
os.environ["FASTLED_FORCE_CLEAR"] = new_value
|
229
229
|
else:
|
230
|
-
os.environ["FASTLED_FORCE_CLEAR"]
|
230
|
+
os.environ["FASTLED_FORCE_CLEAR"] = "1"
|
231
231
|
|
232
232
|
|
233
233
|
def force_image_removal() -> bool:
|
@@ -653,7 +653,7 @@ class DockerManager:
|
|
653
653
|
Example: {8080: 80} maps host port 8080 to container port 80
|
654
654
|
"""
|
655
655
|
remove_previous = remove_previous or get_force_remove_image_previous()
|
656
|
-
if
|
656
|
+
if get_force_remove_image_previous():
|
657
657
|
# make a banner print
|
658
658
|
print(
|
659
659
|
"Force removing previous image due to FASTLED_FORCE_CLEAR environment variable."
|
@@ -157,7 +157,6 @@ def parse_args() -> Args:
|
|
157
157
|
build_mode.add_argument(
|
158
158
|
"--quick",
|
159
159
|
action="store_true",
|
160
|
-
default=True,
|
161
160
|
help="Build in quick mode (default)",
|
162
161
|
)
|
163
162
|
build_mode.add_argument(
|
@@ -209,11 +208,14 @@ def parse_args() -> Args:
|
|
209
208
|
fastled_dir: Path | None = _find_fastled_repo(cwd)
|
210
209
|
is_fastled_dir: bool = fastled_dir is not None
|
211
210
|
|
212
|
-
if
|
213
|
-
|
214
|
-
|
215
|
-
args.
|
216
|
-
print("Defaulting to --
|
211
|
+
if not (args.debug or args.quick or args.release):
|
212
|
+
if is_fastled_dir:
|
213
|
+
# if --quick, --debug, --release are not specified then default to --debug
|
214
|
+
args.quick = True
|
215
|
+
print("Defaulting to --quick mode in fastled repo")
|
216
|
+
else:
|
217
|
+
args.quick = True
|
218
|
+
print("Defaulting to --quick mode")
|
217
219
|
|
218
220
|
if args.build or args.interactive:
|
219
221
|
if args.directory is not None:
|
@@ -11,12 +11,17 @@ def hash_file(file_path: Path) -> str:
|
|
11
11
|
|
12
12
|
|
13
13
|
def banner_string(msg: str) -> str:
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
"""
|
18
|
-
|
19
|
-
return f"\n{border}\n
|
14
|
+
lines = msg.splitlines()
|
15
|
+
max_length = max(len(line) for line in lines)
|
16
|
+
border = "#" * (max_length + 4)
|
17
|
+
bordered_lines = [f"# {line} " + "#" * (max_length - len(line)) for line in lines]
|
18
|
+
bordered_msg = "\n".join(bordered_lines)
|
19
|
+
return f"\n{border}\n{bordered_msg}\n{border}\n"
|
20
|
+
|
21
|
+
|
22
|
+
def print_banner(msg: str) -> None:
|
23
|
+
"""Print a message in a banner format."""
|
24
|
+
print(banner_string(msg))
|
20
25
|
|
21
26
|
|
22
27
|
def port_is_free(port: int) -> bool:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: fastled
|
3
|
-
Version: 1.3.
|
3
|
+
Version: 1.3.14
|
4
4
|
Summary: FastLED Wasm Compiler
|
5
5
|
Home-page: https://github.com/zackees/fastled-wasm
|
6
6
|
Maintainer: Zachary Vorhies
|
@@ -20,7 +20,7 @@ Requires-Dist: progress>=1.6
|
|
20
20
|
Requires-Dist: watchfiles>=1.0.5
|
21
21
|
Requires-Dist: Flask>=3.0.0
|
22
22
|
Requires-Dist: livereload
|
23
|
-
Requires-Dist:
|
23
|
+
Requires-Dist: disklru>=2.0.4
|
24
24
|
Dynamic: home-page
|
25
25
|
Dynamic: license-file
|
26
26
|
Dynamic: maintainer
|
@@ -91,7 +91,11 @@ https://github.com/user-attachments/assets/64ae0e6c-5f8b-4830-ab87-dcc25bc61218
|
|
91
91
|
pip install fastled
|
92
92
|
```
|
93
93
|
|
94
|
-
|
94
|
+
# Debugger
|
95
|
+
|
96
|
+
This tool features full C++ debugging through the browser.
|
97
|
+
|
98
|
+
For instructions on setup see [DEBUGGER.md](DEBUGGER.md)
|
95
99
|
|
96
100
|
# Command Line Use
|
97
101
|
|
@@ -389,12 +393,14 @@ A: A big chunk of space is being used by unnecessary javascript `emscripten` bun
|
|
389
393
|
|
390
394
|
|
391
395
|
|
396
|
+
|
392
397
|
live-server --https --port=8416 --host=localhost . --cert=C:/Users/niteris/dev/fastled-wasm/src/fastled/assets/localhost-key.pem --key=C:/Users/niteris/dev/fastled-wasm/src/fastled/assets/localhost.pem --no-browser
|
393
398
|
|
394
399
|
|
395
400
|
live-server --https --cert=src/fastled/assets/localhost.pem --key=src/fastled/assets/localhost-key.pem --port=5500
|
396
401
|
|
397
402
|
|
403
|
+
|
398
404
|
## Performance
|
399
405
|
|
400
406
|
```
|
@@ -2,7 +2,9 @@
|
|
2
2
|
.dockerignore
|
3
3
|
.gitignore
|
4
4
|
.pylintrc
|
5
|
+
DEBUGGER.md
|
5
6
|
Dockerfile
|
7
|
+
FAQ.md
|
6
8
|
LICENSE
|
7
9
|
MANIFEST.in
|
8
10
|
README.md
|
@@ -13,6 +15,7 @@ build_local_docker.py
|
|
13
15
|
build_site.py
|
14
16
|
clean
|
15
17
|
docker-compose.yml
|
18
|
+
entrypoint.sh
|
16
19
|
install
|
17
20
|
install_linux.sh
|
18
21
|
lint
|
@@ -33,18 +36,8 @@ upload_package.sh
|
|
33
36
|
.vscode/launch.json
|
34
37
|
.vscode/settings.json
|
35
38
|
.vscode/tasks.json
|
36
|
-
compiler/CMakeLists.txt
|
37
|
-
compiler/arduino-pre-process.sh
|
38
39
|
compiler/debug.sh
|
39
|
-
compiler/entrypoint.sh
|
40
|
-
compiler/final_prewarm.sh
|
41
|
-
compiler/init_runtime.py
|
42
|
-
compiler/install-arduino-cli.sh
|
43
|
-
compiler/prewarm.sh
|
44
|
-
compiler/process-ino.py
|
45
|
-
compiler/pyproject.toml
|
46
40
|
compiler/run.py
|
47
|
-
compiler/libcompile/CMakeLists.txt
|
48
41
|
demo/100dots.html
|
49
42
|
demo/demo_threejs.html
|
50
43
|
demo/micdemo.html
|
@@ -111,7 +104,6 @@ tests/unit/test_project_init.py
|
|
111
104
|
tests/unit/test_server_and_client_seperatly.py
|
112
105
|
tests/unit/test_string_diff.py
|
113
106
|
tests/unit/test_version.py
|
114
|
-
tests/unit/test_version_matches.py
|
115
107
|
tests/unit/test_webcompile.py
|
116
108
|
tests/unit/html/index.html
|
117
109
|
tests/unit/test_ino/bad/bad.ino
|
@@ -16,10 +16,11 @@ class MainTester(unittest.TestCase):
|
|
16
16
|
def test_command(self) -> None:
|
17
17
|
"""Test command line interface (CLI)."""
|
18
18
|
stdout = subprocess.check_output(COMMAND, shell=True)
|
19
|
+
version_stdout = stdout.decode("utf-8").strip()
|
19
20
|
self.assertEqual(
|
20
|
-
|
21
|
+
version_stdout,
|
21
22
|
__version__,
|
22
|
-
f"Version mismatch: {
|
23
|
+
f"FastLED Version mismatch: {version_stdout} (tool output) != {__version__} (package version)",
|
23
24
|
)
|
24
25
|
|
25
26
|
|
fastled-1.3.11/Dockerfile
DELETED
@@ -1,85 +0,0 @@
|
|
1
|
-
|
2
|
-
# The only reason we use docker is because of the fastled-wasm-compiler.
|
3
|
-
FROM niteris/fastled-wasm-compiler:latest
|
4
|
-
|
5
|
-
|
6
|
-
# Get the compiler requirements and install them.
|
7
|
-
COPY compiler/pyproject.toml /install/pyproject.toml
|
8
|
-
RUN uv pip install --system -r /install/pyproject.toml
|
9
|
-
|
10
|
-
# FIRST PRE-WARM CYCLE and initial setup: Download the fastled repo from the github and pre-warm the cache with a compilation.
|
11
|
-
# This is by far the most expensive part of the build, because platformio needs to download initial tools. This
|
12
|
-
# pre-warm cycle is "sticky" and tends to stay in the cache for a long time since docker is very relaxed about
|
13
|
-
# invalidating cache layers that clone a github repo.
|
14
|
-
|
15
|
-
RUN echo "force update4"
|
16
|
-
ARG FASTLED_BUILD_DAY=echo $(date +'%Y-%m-%d')
|
17
|
-
ENV FASTLED_BUILD_DAY=${FASTLED_BUILD_DAY}
|
18
|
-
|
19
|
-
# ARG FASTLED_VERSION=master
|
20
|
-
# ENV FASTLED_VERSION=${FASTLED_VERSION}
|
21
|
-
# RUN mkdir -p /js/fastled && \
|
22
|
-
# rsync -a /git/fastled/ /js/fastled/ --exclude='.git'
|
23
|
-
|
24
|
-
# Create symlinks for wasm platform files.
|
25
|
-
COPY compiler/init_runtime.py /js/init_runtime.py
|
26
|
-
#COPY compiler/prewarm.sh /js/prewarm.sh
|
27
|
-
|
28
|
-
WORKDIR /js
|
29
|
-
|
30
|
-
#ARG NO_PREWARM=0
|
31
|
-
#ENV NO_PREWARM=${NO_PREWARM}
|
32
|
-
|
33
|
-
#RUN python /js/init_runtime.py || true
|
34
|
-
|
35
|
-
|
36
|
-
# First pre-warm cycle - always do it as part of the build.
|
37
|
-
# RUN mkdir -p /logs
|
38
|
-
|
39
|
-
# Force a build if the compiler flags change.
|
40
|
-
#COPY compiler/CMakeLists.txt /trash/CMakeLists.txt
|
41
|
-
#RUN rm -rf /trash
|
42
|
-
|
43
|
-
#RUN chmod +x /js/prewarm.sh && \
|
44
|
-
# cat /js/prewarm.sh >> /logs/prewarm.log.0
|
45
|
-
#RUN /js/prewarm.sh --force >> /logs/prewarm.log.1 || true
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
# # Copy the fastled repo from the host machine and prepare for pre-warm
|
50
|
-
# # Make sure and delete files that have been removed so that we don't get
|
51
|
-
# # duplicate symbols from stale files.
|
52
|
-
# COPY *.json /host/fastled/
|
53
|
-
# COPY src/*.* /host/fastled/src/
|
54
|
-
# COPY examples /host/fastled/examples
|
55
|
-
# COPY src/fx /host/fastled/src/fx
|
56
|
-
# COPY src/fl /host/fastled/src/fl
|
57
|
-
# COPY src/lib8tion /host/fastled/src/lib8tion
|
58
|
-
# COPY src/third_party /host/fastled/src/third_party
|
59
|
-
# COPY src/sensors /host/fastled/src/sensors
|
60
|
-
# COPY src/platforms /host/fastled/src/platforms
|
61
|
-
|
62
|
-
RUN echo "force update"
|
63
|
-
COPY compiler /js/compiler
|
64
|
-
|
65
|
-
COPY compiler/entrypoint.sh /entrypoint.sh
|
66
|
-
RUN chmod +x /entrypoint.sh && dos2unix /entrypoint.sh
|
67
|
-
|
68
|
-
# RSYNC DISABLED FOR NOW
|
69
|
-
# now sync local to the source directory.
|
70
|
-
# RUN rsync -av /host/fastled/ /js/fastled/ && rm -rf /host/fastled
|
71
|
-
|
72
|
-
# RUN python /js/init_runtime.py || true
|
73
|
-
|
74
|
-
|
75
|
-
# SECOND PRE-WARM CYCLE: Copy the fastled repo from the host machine and pre-warm the cache with that compilation. This will
|
76
|
-
# be much quicker than the first pre-warm cycle.
|
77
|
-
# RUN /js/prewarm.sh --force > /logs/prewarm.log.2 || true
|
78
|
-
|
79
|
-
# Now timestamp the image and store it at the end of the build.
|
80
|
-
RUN date > /image_timestamp.txt
|
81
|
-
|
82
|
-
ENTRYPOINT ["/entrypoint.sh"]
|
83
|
-
CMD ["python", "/js/run.py", "server"]
|
84
|
-
|
85
|
-
# CMD ["/bin/bash", "/entrypoint.sh"]
|