You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

runner.py 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. #!/usr/bin/python3
  2. import sys
  3. import os
  4. import signal
  5. import subprocess
  6. import time
  7. import tty,termios
  8. import re
  9. import json
  10. from pathlib import Path
  11. import runner_lib as runner
  12. def action_help():
  13. global bindings
  14. print("\nKey\tAction\n--------------------------------------")
  15. for i in bindings:
  16. print(" {}\t{}".format(bindings[i],i))
  17. print("--------------------------------------\n")
  18. bindings={
  19. "Show playlist" : "l",
  20. "Launch [0-x] cmd" : "0-x",
  21. "Previous command" : "p",
  22. "Next command" : "o",
  23. "New command" : "a",
  24. "Edit command" : "e",
  25. "Delete command" : "d",
  26. "Load playlist" : "L",
  27. "Save playlist" : "S",
  28. "Save as new" : "A",
  29. "New playlist" : "N",
  30. "Command help" : "H",
  31. "Kill process Id" : "K",
  32. "Edit Laser Id" : "i",
  33. "Edit Laser Scene" : "s",
  34. "Information" : "I",
  35. "Help" : "h",
  36. "Quit" : "q",
  37. }
  38. ## Init user contact
  39. # Main Loop
  40. runner.action_info()
  41. action_help()
  42. print("\n\nLoad a playlist? [Y/n]: ")
  43. if "y" == runner.inkey() :
  44. runner.action_loadPlaylist()
  45. while True:
  46. # Fuck zombies
  47. runner._killBill()
  48. runner._ok("> Next Action?")
  49. k = runner.inkey()
  50. if bindings["Next command"] == k:
  51. runner.action_changeCommand( 1 )
  52. runner.action_runCommand()
  53. elif bindings["Previous command"] == k:
  54. runner.action_changeCommand( -1 )
  55. runner.action_runCommand()
  56. elif re.match( r'^\d+$',k):
  57. runner.action_match(k)
  58. runner.action_runCommand()
  59. elif bindings["New command"] == k:
  60. runner.action_newCommand()
  61. continue
  62. elif bindings["Show playlist"] == k:
  63. runner.action_listAll()
  64. continue
  65. elif bindings["Delete command"] == k:
  66. runner.action_deleteCommand()
  67. continue
  68. elif bindings["Edit command"] == k:
  69. runner.action_listAll()
  70. runner.action_edit()
  71. continue
  72. elif bindings["Load playlist"] == k:
  73. if runner.action_loadPlaylist():
  74. runner.action_listAll()
  75. continue
  76. elif bindings["Save playlist"] == k:
  77. runner.action_savePlaylist()
  78. continue
  79. elif bindings["Save as new"] == k:
  80. runner.action_savePlaylist()
  81. continue
  82. elif bindings["New playlist"] == k:
  83. runner.action_newPlaylist()
  84. continue
  85. elif bindings["Command help"] == k:
  86. runner.action_commandHelp()
  87. continue
  88. elif bindings["Edit Laser Id"] == k:
  89. runner.action_laserId()
  90. continue
  91. elif bindings["Edit Laser Scene"] == k:
  92. runner.action_laserScene()
  93. continue
  94. elif bindings["Kill process Id"] == k:
  95. runner.action_killPid()
  96. continue
  97. elif bindings["Help"] == k:
  98. action_help()
  99. continue
  100. elif bindings["Information"] == k:
  101. runner.action_info()
  102. continue
  103. elif bindings["Quit"] == k:
  104. runner.action_quit()
  105. else:
  106. runner._err("Unexpected key:{}".format(k))
  107. continue