Fixed bugs

This commit is contained in:
Gino D
2022-12-29 21:15:11 +01:00
parent f428e7984d
commit f28bd0a582

View File

@@ -598,7 +598,7 @@ class Files(object):
self._pyboard.exec_(f"f.write({chunk})") self._pyboard.exec_(f"f.write({chunk})")
self._pyboard.exec_("f.close()") self._pyboard.exec_("f.close()")
except Exception as e: except Exception as e:
print(' [x]') print(' [x] > ', end='')
self.handle_traceback(e) self.handle_traceback(e)
finally: finally:
self._pyboard.exit_raw_repl() self._pyboard.exit_raw_repl()
@@ -632,7 +632,7 @@ class Files(object):
self._pyboard.enter_raw_repl() self._pyboard.enter_raw_repl()
output = self._pyboard.exec_(textwrap.dedent(command)) output = self._pyboard.exec_(textwrap.dedent(command))
except PyboardError as e: except PyboardError as e:
print(' [x]') print(' [x] > ', end='')
self.handle_traceback(e) self.handle_traceback(e)
finally: finally:
self._pyboard.exit_raw_repl() self._pyboard.exit_raw_repl()
@@ -650,14 +650,14 @@ class Files(object):
import uos as os import uos as os
os.remove('{filename}') os.remove('{filename}')
""" """
print(f' {filename}', end='') print(f'- {filename}', end='')
try: try:
self.__raw_repl_on = True self.__raw_repl_on = True
self._pyboard.enter_raw_repl() self._pyboard.enter_raw_repl()
self._pyboard.exec_(textwrap.dedent(command)) self._pyboard.exec_(textwrap.dedent(command))
except Exception as e: except Exception as e:
print(' [x]') print(' [x] > ', end='')
self.handle_traceback(e) self.handle_traceback(e)
finally: finally:
self._pyboard.exit_raw_repl() self._pyboard.exit_raw_repl()
@@ -694,14 +694,15 @@ class Files(object):
os.rmdir(directory) os.rmdir(directory)
rmdir('{directory}') rmdir('{directory}')
""" """
print(f' {directory}', end='') print(f'- {directory}', end='')
try: try:
self.__raw_repl_on = True self.__raw_repl_on = True
self._pyboard.enter_raw_repl() self._pyboard.enter_raw_repl()
self._pyboard.exec_(textwrap.dedent(command)) self._pyboard.exec_(textwrap.dedent(command))
except Exception as e: except Exception as e:
print(' [x]') if not missing_okay:
print(' [x] > ', end='')
self.handle_traceback(e) self.handle_traceback(e)
finally: finally:
self._pyboard.exit_raw_repl() self._pyboard.exit_raw_repl()
@@ -794,10 +795,14 @@ def upload(source: str = '', destination: str = ''):
time.sleep(.5) time.sleep(.5)
elif os.path.exists(real_source): elif os.path.exists(real_source):
dirpath = []
for d in os.path.dirname(destination).split('/'):
dirpath.append(d)
pico.mkdir('/'.join(dirpath), exists_okay=True)
with open(real_source, 'rb') as fh: with open(real_source, 'rb') as fh:
pico.put(destination, fh.read()) pico.put(destination, fh.read())
time.sleep(.5)
except Exception as e: except Exception as e:
print(str(e)) print(str(e))
@@ -821,8 +826,6 @@ def download(source: str = '/'):
with open(os.path.join(WATCHING_DIRECTORY, *filename.split('/')), 'wb') as fh: with open(os.path.join(WATCHING_DIRECTORY, *filename.split('/')), 'wb') as fh:
fh.write(pico.get(filename)) fh.write(pico.get(filename))
time.sleep(.5)
except Exception as e: except Exception as e:
print(str(e)) print(str(e))
@@ -838,23 +841,10 @@ def contents(filename: str):
def delete(source: str, is_directory: bool = False): def delete(source: str, is_directory: bool = False):
try: try:
if is_directory: if is_directory:
for filename in pico.ls(directory=source, long_format=False, recursive=True): if not source.endswith('/'):
if filename.startswith('/'): source += '/'
filename = filename[1:]
pico.rm(filename) pico.rmdir(source, missing_okay=True)
try:
for filename in pico.ls(directory=source, long_format=False, recursive=True):
if filename.startswith('/'):
filename = filename[1:]
if not filename.endswith('/'):
filename += '/'
pico.rm(filename)
except:
pass
else: else:
pico.rm(source) pico.rm(source)
except Exception as e: except Exception as e:
@@ -906,7 +896,7 @@ def on_deleted_callback(event):
def watchdog_callback(): def watchdog_callback():
for source in sessions['deleted']: for source in sessions['deleted']:
delete(source) delete(source, is_directory=source.endswith('/'))
for source in sessions['modified']: for source in sessions['modified']:
upload(source) upload(source)
@@ -956,13 +946,17 @@ try:
delete('/', is_directory=True) delete('/', is_directory=True)
case ['upl' | 'upload' | 'update', source]: case ['upl' | 'upload' | 'update', source]:
upload(source) upload(source)
case ['download' | 'backup', source]: case ['restore']:
upload('/')
case ['download' | 'transfer', source]:
download(source) download(source)
case ['backup']:
download('/')
case ['' | 'save' | 'commit']: case ['' | 'save' | 'commit']:
watchdog_callback() watchdog_callback()
case ['status' | 'staged']: case ['status' | 'staged']:
for filename in sessions['deleted']: for filename in sessions['deleted']:
print('', filename) print('-', filename)
for filename in sessions['modified']: for filename in sessions['modified']:
print('+', filename) print('+', filename)