idf_ext.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. def action_extensions(base_actions, project_path=None):
  2. def echo(name, *args, **kwargs):
  3. print(name, args, kwargs)
  4. def verbose(name, ctx, args):
  5. print('Output from test-verbose')
  6. if args.verbose:
  7. print('Verbose mode on')
  8. # Add global options
  9. extensions = {
  10. 'global_options': [
  11. {
  12. 'names': ['--test-0'],
  13. 'help': 'Non-deprecated option.',
  14. 'deprecated': False
  15. },
  16. {
  17. 'names': ['--test-1'],
  18. 'help': 'Deprecated option 1.',
  19. 'deprecated': True
  20. },
  21. {
  22. 'names': ['--test-2'],
  23. 'help': 'Deprecated option 2.',
  24. 'deprecated': 'Please update your parameters.'
  25. },
  26. {
  27. 'names': ['--test-3'],
  28. 'help': 'Deprecated option 3.',
  29. 'deprecated': {
  30. 'custom_message': 'Please update your parameters.'
  31. }
  32. },
  33. {
  34. 'names': ['--test-4'],
  35. 'help': 'Deprecated option 4.',
  36. 'deprecated': {
  37. 'since': 'v4.0',
  38. 'removed': 'v5.0'
  39. }
  40. },
  41. {
  42. 'names': ['--test-5'],
  43. 'help': 'Deprecated option 5.',
  44. 'deprecated': {
  45. 'since': 'v2.0',
  46. 'removed': 'v3.0',
  47. 'exit_with_error': True
  48. }
  49. },
  50. ],
  51. 'actions': {
  52. 'test-verbose': {
  53. 'callback': verbose,
  54. 'help': 'Command that have some verbosity',
  55. },
  56. 'test-0': {
  57. 'callback': echo,
  58. 'help': 'Non-deprecated command 0',
  59. 'options': [
  60. {
  61. 'names': ['--test-sub-0'],
  62. 'help': 'Non-deprecated subcommand option 0',
  63. 'default': None,
  64. },
  65. {
  66. 'names': ['--test-sub-1'],
  67. 'help': 'Deprecated subcommand option 1',
  68. 'default': None,
  69. 'deprecated': True
  70. },
  71. ],
  72. 'arguments': [{
  73. 'names': ['test-arg-0'],
  74. }],
  75. },
  76. 'test-1': {
  77. 'callback': echo,
  78. 'help': 'Deprecated command 1',
  79. 'deprecated': 'Please use alternative command.'
  80. },
  81. 'test-2': {
  82. 'callback': echo,
  83. 'help': 'Deprecated command 2',
  84. 'deprecated': {
  85. 'exit_with_error': True
  86. }
  87. },
  88. },
  89. }
  90. return extensions