shadysim.py: refactor reader interface selection
This commit is contained in:
@@ -370,8 +370,10 @@ class AppLoaderCommands(object):
|
|||||||
#------
|
#------
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='Tool for Toorcamp SIMs.')
|
parser = argparse.ArgumentParser(description='Tool for Toorcamp SIMs.')
|
||||||
parser.add_argument('-s', '--serialport')
|
parser.add_argument('-I', '--interface', default='pcsc',
|
||||||
parser.add_argument('-p', '--pcsc', nargs='?', const=0, type=int)
|
choices = ['pcsc', 'serial', 'dummy'])
|
||||||
|
parser.add_argument('-s', '--serialport', default='/dev/ttyUSB0')
|
||||||
|
parser.add_argument('-p', '--pcsc', nargs='?', const=0, type=int, default=0)
|
||||||
parser.add_argument('-d', '--delete-app')
|
parser.add_argument('-d', '--delete-app')
|
||||||
parser.add_argument('-l', '--load-app')
|
parser.add_argument('-l', '--load-app')
|
||||||
parser.add_argument('-i', '--install')
|
parser.add_argument('-i', '--install')
|
||||||
@@ -401,18 +403,22 @@ parser.add_argument('--smpp', action='store_true')
|
|||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if args.pcsc is not None:
|
if args.interface == "pcsc":
|
||||||
|
if args.pcsc is None:
|
||||||
|
raise argparse.ArgumentTypeError("You need to specify PC/SC reader using -p")
|
||||||
from pySim.transport.pcsc import PcscSimLink
|
from pySim.transport.pcsc import PcscSimLink
|
||||||
sl = PcscSimLink(args.pcsc)
|
sl = PcscSimLink(args.pcsc)
|
||||||
elif args.serialport is not None:
|
elif args.interface == "serial":
|
||||||
|
if args.serialport is None:
|
||||||
|
raise argparse.ArgumentTypeError("You need to specify serial port using -s")
|
||||||
from pySim.transport.serial import SerialSimLink
|
from pySim.transport.serial import SerialSimLink
|
||||||
sl = SerialSimLink(device=args.serialport, baudrate=9600)
|
sl = SerialSimLink(device=args.serialport, baudrate=9600)
|
||||||
elif args.smpp is not None:
|
elif args.interface == "dummy":
|
||||||
class DummySL:
|
class DummySL:
|
||||||
pass
|
pass
|
||||||
sl = DummySL()
|
sl = DummySL()
|
||||||
pass
|
pass
|
||||||
else:
|
else: # Shall not happen in general, parser.parse_args() would fail
|
||||||
raise RuntimeError("Need to specify either --serialport, --pcsc or --smpp")
|
raise RuntimeError("Need to specify either --serialport, --pcsc or --smpp")
|
||||||
|
|
||||||
sc = SimCardCommands(sl)
|
sc = SimCardCommands(sl)
|
||||||
|
|||||||
Reference in New Issue
Block a user