mirror of
https://gitea.osmocom.org/sim-card/pysim.git
synced 2026-03-28 16:28:33 +03:00
Move reader related argument parser to transport module
Ideally that shared definition would be used by all programs,
rather than copy+pasting it. Unfortunately pySim-{read,prog}
are still using optparse and first need to be converted to
argparse.
Change-Id: If77f53850e1ca65f42cf1dca3e0f460dac1b0d1a
This commit is contained in:
@@ -36,7 +36,7 @@ from pySim.ts_31_103 import EF_IST_map, EF_ISIM_ADF_map
|
|||||||
|
|
||||||
from pySim.exceptions import *
|
from pySim.exceptions import *
|
||||||
from pySim.commands import SimCardCommands
|
from pySim.commands import SimCardCommands
|
||||||
from pySim.transport import init_reader, ApduTracer
|
from pySim.transport import init_reader, ApduTracer, argparse_add_reader_args
|
||||||
from pySim.cards import card_detect, Card
|
from pySim.cards import card_detect, Card
|
||||||
from pySim.utils import h2b, swap_nibbles, rpad, h2s, JsonEncoder
|
from pySim.utils import h2b, swap_nibbles, rpad, h2s, JsonEncoder
|
||||||
from pySim.utils import dec_st, sanitize_pin_adm, tabulate_str_list, is_hex, boxed_heading_str
|
from pySim.utils import dec_st, sanitize_pin_adm, tabulate_str_list, is_hex, boxed_heading_str
|
||||||
@@ -432,32 +432,12 @@ class Iso7816Commands(CommandSet):
|
|||||||
|
|
||||||
option_parser = argparse.ArgumentParser(prog='pySim-shell', description='interactive SIM card shell',
|
option_parser = argparse.ArgumentParser(prog='pySim-shell', description='interactive SIM card shell',
|
||||||
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
|
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
|
||||||
|
argparse_add_reader_args(option_parser)
|
||||||
serial_group = option_parser.add_argument_group('Serial Reader')
|
|
||||||
serial_group.add_argument('-d', '--device', metavar='DEV', default='/dev/ttyUSB0',
|
|
||||||
help='Serial Device for SIM access')
|
|
||||||
serial_group.add_argument('-b', '--baud', dest='baudrate', type=int, metavar='BAUD', default=9600,
|
|
||||||
help='Baud rate used for SIM access')
|
|
||||||
|
|
||||||
pcsc_group = option_parser.add_argument_group('PC/SC Reader')
|
|
||||||
pcsc_group.add_argument('-p', '--pcsc-device', type=int, dest='pcsc_dev', metavar='PCSC', default=None,
|
|
||||||
help='PC/SC reader number to use for SIM access')
|
|
||||||
|
|
||||||
modem_group = option_parser.add_argument_group('AT Command Modem Reader')
|
|
||||||
modem_group.add_argument('--modem-device', dest='modem_dev', metavar='DEV', default=None,
|
|
||||||
help='Serial port of modem for Generic SIM Access (3GPP TS 27.007)')
|
|
||||||
modem_group.add_argument('--modem-baud', type=int, metavar='BAUD', default=115200,
|
|
||||||
help='Baud rate used for modem port')
|
|
||||||
|
|
||||||
osmobb_group = option_parser.add_argument_group('OsmocomBB Reader')
|
|
||||||
osmobb_group.add_argument('--osmocon', dest='osmocon_sock', metavar='PATH', default=None,
|
|
||||||
help='Socket path for Calypso (e.g. Motorola C1XX) based reader (via OsmocomBB)')
|
|
||||||
|
|
||||||
global_group = option_parser.add_argument_group('General Options')
|
global_group = option_parser.add_argument_group('General Options')
|
||||||
global_group.add_argument('--script', metavar='PATH', default=None,
|
global_group.add_argument('--script', metavar='PATH', default=None,
|
||||||
help='script with pySim-shell commands to be executed automatically at start-up')
|
help='script with pySim-shell commands to be executed automatically at start-up')
|
||||||
global_group.add_argument('--csv', metavar='FILE', default=None,
|
global_group.add_argument('--csv', metavar='FILE', default=None, help='Read card data from CSV file')
|
||||||
help='Read card data from CSV file')
|
|
||||||
|
|
||||||
adm_group = global_group.add_mutually_exclusive_group()
|
adm_group = global_group.add_mutually_exclusive_group()
|
||||||
adm_group.add_argument('-a', '--pin-adm', metavar='PIN_ADM1', dest='pin_adm', default=None,
|
adm_group.add_argument('-a', '--pin-adm', metavar='PIN_ADM1', dest='pin_adm', default=None,
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
""" pySim: PCSC reader transport link base
|
""" pySim: PCSC reader transport link base
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
import argparse
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from pySim.exceptions import *
|
from pySim.exceptions import *
|
||||||
@@ -175,6 +176,30 @@ class LinkBase(object):
|
|||||||
raise SwMatchError(sw, sw_exp.lower(), self.sw_interpreter)
|
raise SwMatchError(sw, sw_exp.lower(), self.sw_interpreter)
|
||||||
return (rsp, sw)
|
return (rsp, sw)
|
||||||
|
|
||||||
|
def argparse_add_reader_args(arg_parser):
|
||||||
|
"""Add all reader related arguments to the given argparse.Argumentparser instance."""
|
||||||
|
serial_group = arg_parser.add_argument_group('Serial Reader')
|
||||||
|
serial_group.add_argument('-d', '--device', metavar='DEV', default='/dev/ttyUSB0',
|
||||||
|
help='Serial Device for SIM access')
|
||||||
|
serial_group.add_argument('-b', '--baud', dest='baudrate', type=int, metavar='BAUD', default=9600,
|
||||||
|
help='Baud rate used for SIM access')
|
||||||
|
|
||||||
|
pcsc_group = arg_parser.add_argument_group('PC/SC Reader')
|
||||||
|
pcsc_group.add_argument('-p', '--pcsc-device', type=int, dest='pcsc_dev', metavar='PCSC', default=None,
|
||||||
|
help='PC/SC reader number to use for SIM access')
|
||||||
|
|
||||||
|
modem_group = arg_parser.add_argument_group('AT Command Modem Reader')
|
||||||
|
modem_group.add_argument('--modem-device', dest='modem_dev', metavar='DEV', default=None,
|
||||||
|
help='Serial port of modem for Generic SIM Access (3GPP TS 27.007)')
|
||||||
|
modem_group.add_argument('--modem-baud', type=int, metavar='BAUD', default=115200,
|
||||||
|
help='Baud rate used for modem port')
|
||||||
|
|
||||||
|
osmobb_group = arg_parser.add_argument_group('OsmocomBB Reader')
|
||||||
|
osmobb_group.add_argument('--osmocon', dest='osmocon_sock', metavar='PATH', default=None,
|
||||||
|
help='Socket path for Calypso (e.g. Motorola C1XX) based reader (via OsmocomBB)')
|
||||||
|
|
||||||
|
return arg_parser
|
||||||
|
|
||||||
def init_reader(opts, **kwargs) -> Optional[LinkBase]:
|
def init_reader(opts, **kwargs) -> Optional[LinkBase]:
|
||||||
"""
|
"""
|
||||||
Init card reader driver
|
Init card reader driver
|
||||||
|
|||||||
Reference in New Issue
Block a user