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