From 212dbbf0c76fa0fb8f2920e4bd05693d1e54c5c6 Mon Sep 17 00:00:00 2001 From: Michael Keirnan Date: Tue, 29 Mar 2016 20:24:37 -0400 Subject: [PATCH] #22 - reap only specified dir, /data by default --- python/sdreaper/app.py | 6 ++++-- python/sdreaper/main.py | 5 +++-- python/sdreaper/reaper.py | 10 ++++++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/python/sdreaper/app.py b/python/sdreaper/app.py index 9c1db05..407e5b4 100644 --- a/python/sdreaper/app.py +++ b/python/sdreaper/app.py @@ -24,8 +24,10 @@ class App(object): locale.setlocale(locale.LC_ALL, '') - def __init__(self, reaper, rm_after_download=True, auto_run=False): + def __init__(self, reaper, rm_after_download=True, auto_run=False, + sd_data_dir=''): self.rm_after_download = rm_after_download + self.sd_data_dir = sd_data_dir self.reaper = reaper self.file_progress = TimedProgressBar('normal', 'complete', @@ -44,7 +46,7 @@ def __init__(self, reaper, rm_after_download=True, auto_run=False): info = self.reaper.info() self.device_id = info['samd_id'][2:] self.file_count = uw.Text('') - self.file_list = self.reaper.ls() + self.file_list = self.reaper.ls(self.sd_data_dir) self.update_file_count() info_text = [ diff --git a/python/sdreaper/main.py b/python/sdreaper/main.py index 19a4d4f..30d7197 100755 --- a/python/sdreaper/main.py +++ b/python/sdreaper/main.py @@ -9,7 +9,8 @@ Options: -r --run begin download automatically - -d DATA --data=DATA data directory to use [default: data] + -d DATA --data=DATA destination directory of downloads [default: data] + --sd-data-dir=SD-DATA source dir to download from SD card [default: /data] Advanced Options: -p PORT --port=PORT Port to use. By default the port is auto detected. @@ -69,7 +70,7 @@ def main(): reaper.commands(args['']) else: reaper.echo = False - App(reaper, not args['--no-rm'], args['--run']) + App(reaper, not args['--no-rm'], args['--run'], args['--sd-data-dir']) reaper.disconnect() diff --git a/python/sdreaper/reaper.py b/python/sdreaper/reaper.py index 5939582..366a74f 100755 --- a/python/sdreaper/reaper.py +++ b/python/sdreaper/reaper.py @@ -158,6 +158,12 @@ def progress_fun(num_bytes, w): self.pr('received {}, size={}'.format(filename, size)) elif verb == 'info': return self.info() + elif verb == 'ls': + try: + prefix = parts[1] + except: + prefix = '' + print(self.ls(prefix)) else: self.send_command(command) return self.read() @@ -218,7 +224,7 @@ def get_time(self): tzinfo=datetime.timezone.utc) return dt - def ls(self): + def ls(self, prefix=''): """Get list of files""" self.send_command('ls') result = [] @@ -241,7 +247,7 @@ def ls(self): name = current_dir prev_level = level - return result + return [f for f in result if f['name'].startswith(prefix)] def send_command(self, command, timeout=None): self.sync(timeout=timeout)