1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-11-16 04:29:08 +00:00

Changed API to refactored TrezorClient, removed unused DebugLink

This commit is contained in:
slush0 2014-02-13 16:47:03 +01:00
parent 558f61e635
commit 5128fa8442

42
cmd.py
View File

@ -5,27 +5,23 @@ import argparse
import json import json
import threading import threading
from trezorlib.client import TrezorClient, pin_func from trezorlib.client import TrezorClient
from trezorlib.debuglink import DebugLink from trezorlib.api_blockchain import BlockchainApi
from trezorlib.protobuf_json import pb2json from trezorlib.protobuf_json import pb2json
def parse_args(commands): def parse_args(commands):
parser = argparse.ArgumentParser(description='Commandline tool for Trezor devices.') parser = argparse.ArgumentParser(description='Commandline tool for Trezor devices.')
parser.add_argument('-t', '--transport', dest='transport', choices=['usb', 'serial', 'pipe', 'socket'], default='usb', help="Transport used for talking with the device") parser.add_argument('-t', '--transport', dest='transport', choices=['usb', 'serial', 'pipe', 'socket'], default='usb', help="Transport used for talking with the device")
parser.add_argument('-p', '--path', dest='path', default='', help="Path used by the transport (usually serial port)") parser.add_argument('-p', '--path', dest='path', default='', help="Path used by the transport (usually serial port)")
parser.add_argument('-dt', '--debuglink-transport', dest='debuglink_transport', choices=['usb', 'serial', 'pipe', 'socket'], default='usb', help="Debuglink transport") # parser.add_argument('-dt', '--debuglink-transport', dest='debuglink_transport', choices=['usb', 'serial', 'pipe', 'socket'], default='usb', help="Debuglink transport")
parser.add_argument('-dp', '--debuglink-path', dest='debuglink_path', default='', help="Path used by the transport (usually serial port)") # parser.add_argument('-dp', '--debuglink-path', dest='debuglink_path', default='', help="Path used by the transport (usually serial port)")
parser.add_argument('-j', '--json', dest='json', action='store_true', help="Prints result as json object") parser.add_argument('-j', '--json', dest='json', action='store_true', help="Prints result as json object")
parser.add_argument('-d', '--debug', dest='debug', action='store_true', help='Enable low-level debugging') # parser.add_argument('-d', '--debug', dest='debug', action='store_true', help='Enable low-level debugging')
cmdparser = parser.add_subparsers(title='Available commands') cmdparser = parser.add_subparsers(title='Available commands')
for cmd in commands._list_commands(): for cmd in commands._list_commands():
func = object.__getattribute__(commands, cmd) func = object.__getattribute__(commands, cmd)
try:
help = func.help
except AttributeError:
help = ''
try: try:
arguments = func.arguments arguments = func.arguments
@ -245,10 +241,9 @@ def list_usb():
from trezorlib.transport_hid import HidTransport from trezorlib.transport_hid import HidTransport
return HidTransport.enumerate() return HidTransport.enumerate()
'''
class PinMatrixThread(threading.Thread): class PinMatrixThread(threading.Thread):
''' # Hacked PinMatrixWidget into command line tool :-).
Hacked PinMatrixWidget into command line tool :-).
'''
def __init__(self, input_text, message): def __init__(self, input_text, message):
super(PinMatrixThread, self).__init__() super(PinMatrixThread, self).__init__()
self.input_text = input_text self.input_text = input_text
@ -287,10 +282,8 @@ class PinMatrixThread(threading.Thread):
a.exec_() a.exec_()
def qt_pin_func(input_text, message=None): def qt_pin_func(input_text, message=None):
''' # This is a hack to display Qt window in non-qt application.
This is a hack to display Qt window in non-qt application. # Qt window just asks for PIN and closes itself, which trigger join().
Qt window just asks for PIN and closes itself, which trigger join().
'''
if False: # os.getenv('DISPLAY'): if False: # os.getenv('DISPLAY'):
# Let's hope that system is configured properly and this won't crash # Let's hope that system is configured properly and this won't crash
t = PinMatrixThread(input_text, message) t = PinMatrixThread(input_text, message)
@ -301,7 +294,8 @@ def qt_pin_func(input_text, message=None):
# Most likely no X is running, # Most likely no X is running,
# let's fallback to default pin_func implementation # let's fallback to default pin_func implementation
return pin_func(input_text, message) return pin_func(input_text, message)
'''
def main(): def main():
args = parse_args(Commands) args = parse_args(Commands)
@ -317,19 +311,9 @@ def main():
print dev[0] print dev[0]
return return
if args.debug:
if args.debuglink_transport == 'usb' and args.debuglink_path == '':
debuglink_transport = get_transport('usb', args.path, debug_link=True)
else:
debuglink_transport = get_transport(args.debuglink_transport,
args.debuglink_path, debug_link=True)
debuglink = DebugLink(debuglink_transport)
else:
debuglink = None
transport = get_transport(args.transport, args.path) transport = get_transport(args.transport, args.path)
client = TrezorClient(transport, pin_func=qt_pin_func, debuglink=debuglink) client = TrezorClient(transport)
client.setup_debuglink(button=True, pin_correct=True) client.set_tx_func(BlockchainApi().get_tx)
cmds = Commands(client) cmds = Commands(client)
res = args.func(cmds, args) res = args.func(cmds, args)