aboutsummaryrefslogtreecommitdiffstats
path: root/pySim-prog.py
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2012-08-15 15:26:30 +0200
committerHarald Welte <laforge@gnumonks.org>2015-08-20 13:23:15 +0200
commite9e5ecbe3068dae7e6e0959f22ed1855911dc892 (patch)
tree2508103b89304bec01ee981f15da3d5e566c2b70 /pySim-prog.py
parentc26b82939fc7c699d1a65459603255ad93a56556 (diff)
Introduce a '--dry-run' option to skip actual card access
This can be used for example to batch convert from CSV input to HLR output without writing cards.
Diffstat (limited to 'pySim-prog.py')
-rwxr-xr-xpySim-prog.py52
1 files changed, 31 insertions, 21 deletions
diff --git a/pySim-prog.py b/pySim-prog.py
index d397e17..5e5f063 100755
--- a/pySim-prog.py
+++ b/pySim-prog.py
@@ -141,6 +141,9 @@ def parse_options():
parser.add_option("--write-hlr", dest="write_hlr", metavar="FILE",
help="Append generated parameters to OpenBSC HLR sqlite3",
)
+ parser.add_option("--dry-run", dest="dry_run",
+ help="Perform a 'dry run', don't actually program the card",
+ default=False, action="store_true")
(options, args) = parser.parse_args()
@@ -451,7 +454,7 @@ def write_params_hlr(opts, params):
[
params['imsi'],
params['name'],
- '9' + params['iccid'][-5:]
+ '9' + params['iccid'][-5:-1]
],
)
sub_id = c.lastrowid
@@ -569,27 +572,30 @@ if __name__ == '__main__':
card = None
while not done:
- # Connect transport
- print "Insert card now (or CTRL-C to cancel)"
- sl.wait_for_card(newcardonly=not first)
+
+ if opts.dry_run is False:
+ # Connect transport
+ print "Insert card now (or CTRL-C to cancel)"
+ sl.wait_for_card(newcardonly=not first)
# Not the first anymore !
first = False
- # Get card
- card = card_detect(opts, scc)
- if card is None:
- if opts.batch_mode:
- first = False
- continue
- else:
- sys.exit(-1)
-
- # Erase if requested
- if opts.erase:
- print "Formatting ..."
- card.erase()
- card.reset()
+ if opts.dry_run is False:
+ # Get card
+ card = card_detect(opts, scc)
+ if card is None:
+ if opts.batch_mode:
+ first = False
+ continue
+ else:
+ sys.exit(-1)
+
+ # Erase if requested
+ if opts.erase:
+ print "Formatting ..."
+ card.erase()
+ card.reset()
# Generate parameters
if opts.source == 'cmdline':
@@ -601,9 +607,13 @@ if __name__ == '__main__':
sys.exit(2)
print_parameters(cp)
- # Program the card
- print "Programming ..."
- card.program(cp)
+ if opts.dry_run is False:
+ # Program the card
+ print "Programming ..."
+ if opts.dry_run is not True:
+ card.program(cp)
+ else:
+ print "Dry Run: NOT PROGRAMMING!"
# Write parameters permanently
write_parameters(opts, cp)