micropython / micropython-lib

Core Python libraries ported to MicroPython
Other
2.43k stars 1k forks source link

net/webrepl/webrepl_setup.py: Create boot.py if it doesn't exist. #899

Closed Darkhand81 closed 4 months ago

Darkhand81 commented 4 months ago

Hello!

There are many instances online about people complaining of OSError: [Errno 2] ENOENT errors when trying to initialize WebREPL, particularly on the Pico W.

It appears that these people are not using boot.py in their projects, but webrepl_setup relies on its existence to function.

However, it does not create the file if it doesn't exist, and fails with OSError: [Errno 2] ENOENT.

Since there isn't a .py file to easily trace through (as webrepl_setup and webrepl are usually pre-compiled and included in pre-built Micropython binaries), many users struggle to realize that they're missing a boot.py file for webrepl_setup to write to.

This PR adds a check (new function validate_boot_file()) before get_daemon_status(), which checks for the existence of boot.py and creates the file if it doesn't exist. This solves the OSError: [Errno 2] ENOENT error when trying to run webrepl_setup.py without a boot.py file!