tool: Improve tool/*.py.
[gnuk/gnuk.git] / tool / usb_strings.py
1 #! /usr/bin/python
2
3 """
4 usb_strings.py - a tool to dump USB string
5
6 Copyright (C) 2012, 2015, 2017 Free Software Initiative of Japan
7 Author: NIIBE Yutaka <gniibe@fsij.org>
8
9 This file is a part of Gnuk, a GnuPG USB Token implementation.
10
11 Gnuk is free software: you can redistribute it and/or modify it
12 under the terms of the GNU General Public License as published by
13 the Free Software Foundation, either version 3 of the License, or
14 (at your option) any later version.
15
16 Gnuk is distributed in the hope that it will be useful, but WITHOUT
17 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
18 or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
19 License for more details.
20
21 You should have received a copy of the GNU General Public License
22 along with this program.  If not, see <http://www.gnu.org/licenses/>.
23 """
24
25 from gnuk_token import *
26 import usb, sys
27
28 field = ['', 'Vendor', 'Product', 'Serial', 'Revision', 'Config', 'Sys', 'Board']
29
30 def main(n):
31     for dev in gnuk_devices_by_vidpid():
32         handle = dev.open()
33         try:
34             for i in range(1,n):
35                 s = handle.getString(i, 512)
36                 print("%10s: %s" % (field[i], s.decode('UTF-8')))
37         except:
38             pass
39         del dev
40
41 if __name__ == '__main__':
42     if len(sys.argv) > 1:
43         n = int(sys.argv[1])
44     else:
45         n = 8                   # Gnuk has eight strings
46     main(n)