filesystem: allow dumping multiple records of a file
At the moment we can only request pySim-shell to dump a specific record
of a file. However, it may be useful to dump multiple records of a
record oriented file at once.
Change-Id: Id62db2cba4e3dfb6a7b3e6be8b892c16d11a8e3e
Related: OS#4963
diff --git a/pySim/filesystem.py b/pySim/filesystem.py
index 73401d6..664c722 100644
--- a/pySim/filesystem.py
+++ b/pySim/filesystem.py
@@ -378,11 +378,18 @@
read_rec_parser = argparse.ArgumentParser()
read_rec_parser.add_argument('record_nr', type=int, help='Number of record to be read')
+ read_rec_parser.add_argument('--count', type=int, default=1, help='Number of records to be read, beginning at record_nr')
@cmd2.with_argparser(read_rec_parser)
def do_read_record(self, opts):
- """Read a record from a record-oriented EF"""
- (data, sw) = self._cmd.rs.read_record(opts.record_nr)
- self._cmd.poutput(data)
+ """Read one or multiple records from a record-oriented EF"""
+ for r in range(opts.count):
+ recnr = opts.record_nr + r
+ (data, sw) = self._cmd.rs.read_record(recnr)
+ if (len(data) > 0):
+ recstr = str(data)
+ else:
+ recstr = "(empty)"
+ self._cmd.poutput("%03d %s" % (recnr, recstr))
read_rec_dec_parser = argparse.ArgumentParser()
read_rec_dec_parser.add_argument('record_nr', type=int, help='Number of record to be read')