tools/pyboard.py: Add "touch" filesystem command.

Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
This commit is contained in:
Jim Mussared 2022-08-18 12:34:15 +10:00 committed by Damien George
parent a311e9e3d4
commit 263737ecfe
3 changed files with 12 additions and 6 deletions

View File

@ -131,6 +131,7 @@ The full list of supported commands are:
- ``rm <src...>`` to remove files on the device - ``rm <src...>`` to remove files on the device
- ``mkdir <dirs...>`` to create directories on the device - ``mkdir <dirs...>`` to create directories on the device
- ``rmdir <dirs...>`` to remove directories on the device - ``rmdir <dirs...>`` to remove directories on the device
- ``touch <file..>`` to create the files (if they don't already exist)
- mount the local directory on the remote device: - mount the local directory on the remote device:
@ -192,8 +193,8 @@ Shortcuts can be defined using the macro system. Built-in shortcuts are::
- ``c0``, ``c1``, ``c2``, ``c3``: connect to COM? - ``c0``, ``c1``, ``c2``, ``c3``: connect to COM?
- ``cat``, ``ls``, ``cp``, ``rm``, ``mkdir``, ``rmdir``, ``df``: filesystem - ``cat``, ``ls``, ``cp``, ``rm``, ``mkdir``, ``rmdir``, ``touch``, ``df``:
commands filesystem commands
- ``reset``: reset the device - ``reset``: reset the device

View File

@ -92,12 +92,13 @@ Filesystem access
Using the ``-f`` flag, the following filesystem operations are supported: Using the ``-f`` flag, the following filesystem operations are supported:
* ``cp src [src...] dest`` Copy files to/from the device.
* ``cat path`` Print the contents of a file on the device. * ``cat path`` Print the contents of a file on the device.
* ``cp src [src...] dest`` Copy files to/from the device.
* ``ls [path]`` List contents of a directory (defaults to current working directory). * ``ls [path]`` List contents of a directory (defaults to current working directory).
* ``rm path`` Remove a file.
* ``mkdir path`` Create a directory. * ``mkdir path`` Create a directory.
* ``rm path`` Remove a file.
* ``rmdir path`` Remove a directory. * ``rmdir path`` Remove a directory.
* ``touch path`` Create a file if it doesn't already exist.
The ``cp`` command uses a ``ssh``-like convention for referring to local and The ``cp`` command uses a ``ssh``-like convention for referring to local and
remote files. Any path starting with a ``:`` will be interpreted as on the remote files. Any path starting with a ``:`` will be interpreted as on the

View File

@ -543,6 +543,9 @@ class Pyboard:
def fs_rm(self, src): def fs_rm(self, src):
self.exec_("import uos\nuos.remove('%s')" % src) self.exec_("import uos\nuos.remove('%s')" % src)
def fs_touch(self, src):
self.exec_("f=open('%s','a')\nf.close()" % src)
# in Python2 exec is a keyword so one must use "exec_" # in Python2 exec is a keyword so one must use "exec_"
# but for Python3 we want to provide the nicer version "exec" # but for Python3 we want to provide the nicer version "exec"
@ -595,11 +598,12 @@ def filesystem_command(pyb, args, progress_callback=None, verbose=False):
op(src, dest2, progress_callback=progress_callback) op(src, dest2, progress_callback=progress_callback)
else: else:
op = { op = {
"ls": pyb.fs_ls,
"cat": pyb.fs_cat, "cat": pyb.fs_cat,
"ls": pyb.fs_ls,
"mkdir": pyb.fs_mkdir, "mkdir": pyb.fs_mkdir,
"rmdir": pyb.fs_rmdir,
"rm": pyb.fs_rm, "rm": pyb.fs_rm,
"rmdir": pyb.fs_rmdir,
"touch": pyb.fs_touch,
}[cmd] }[cmd]
if cmd == "ls" and not args: if cmd == "ls" and not args:
args = [""] args = [""]