opts.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #!/usr/bin/env python3
  2. from mmgen.common import *
  3. opts_data = {
  4. 'sets': [('print_checksum',True,'quiet',True)],
  5. 'text': {
  6. 'desc': 'Opts test',
  7. 'usage':'[args] [opts]',
  8. 'options': """
  9. -h, --help Print this help message
  10. --, --longhelp Print help message for long options (common options)
  11. -i, --in-fmt= f Input is from wallet format 'f'
  12. -d, --outdir= d Use outdir 'd'
  13. -C, --print-checksum Print a checksum
  14. -E, --fee-estimate-mode=M Specify the network fee estimate mode.
  15. -H, --hidden-incog-input-params=f,o Read hidden incognito data from file
  16. 'f' at offset 'o' (comma-separated)
  17. -K, --key-generator=m Use method 'm' for public key generation
  18. Options: {kgs} (default: {kg})
  19. -l, --seed-len= l Specify wallet seed length of 'l' bits.
  20. -L, --label= l Specify a label 'l' for output wallet
  21. -m, --keep-label Reuse label of input wallet for output wallet
  22. -p, --hash-preset= p Use the scrypt hash parameters defined by preset 'p'
  23. -P, --passwd-file= f Get wallet passphrase from file 'f'
  24. -u, --subseeds= n The number of subseed pairs to scan for
  25. -q, --quiet Be quieter
  26. -v, --verbose Be more verbose
  27. """,
  28. 'notes': """
  29. NOTES FOR THIS COMMAND
  30. {nn}
  31. """
  32. },
  33. 'code': {
  34. 'options': lambda s: s.format(
  35. kgs=' '.join([f'{n}:{k}' for n,k in enumerate(g.key_generators,1)]),
  36. kg=g.key_generator,
  37. g=g,
  38. ),
  39. 'notes': lambda s: s.format(nn='a note'),
  40. }
  41. }
  42. cmd_args = opts.init(opts_data,add_opts=['foo'])
  43. if cmd_args == ['show_common_opts_diff']:
  44. from mmgen.opts import show_common_opts_diff
  45. show_common_opts_diff()
  46. sys.exit(0)
  47. for k in (
  48. 'foo', # added opt
  49. 'print_checksum', # sets 'quiet'
  50. 'quiet','verbose', # required_opts, incompatible_opts
  51. 'fee_estimate_mode', # autoset_opts
  52. 'passwd_file', # infile_opts - check_infile()
  53. 'outdir', # check_outdir()
  54. 'subseeds', # opt_sets_global
  55. 'key_generator', # global_sets_opt
  56. 'hidden_incog_input_params',
  57. ):
  58. msg('{:30} {}'.format( f'opt.{k}:', getattr(opt,k) ))
  59. msg('')
  60. for k in (
  61. 'subseeds', # opt_sets_global
  62. 'key_generator', # global_sets_opt
  63. ):
  64. msg('{:30} {}'.format( f'g.{k}:', getattr(opt,k) ))