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:
parent
558f61e635
commit
5128fa8442
42
cmd.py
42
cmd.py
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user