|
@@ -654,9 +654,6 @@ def line_print(line_input):
|
654
|
654
|
global warning_continue
|
655
|
655
|
global line_counter
|
656
|
656
|
|
657
|
|
-
|
658
|
|
-
|
659
|
|
-
|
660
|
657
|
# all '0' elements must precede all '1' elements or they'll be skipped
|
661
|
658
|
platformio_highlights = [
|
662
|
659
|
['Environment', 0, 'highlight_blue'],
|
|
@@ -715,7 +712,6 @@ def line_print(line_input):
|
715
|
712
|
# end - write_to_screen_with_replace
|
716
|
713
|
|
717
|
714
|
|
718
|
|
-
|
719
|
715
|
# scan the line
|
720
|
716
|
line_counter = line_counter + 1
|
721
|
717
|
max_search = len(line_input)
|
|
@@ -810,25 +806,76 @@ def line_print(line_input):
|
810
|
806
|
# end - line_print
|
811
|
807
|
|
812
|
808
|
|
|
809
|
+##########################################################################
|
|
810
|
+# #
|
|
811
|
+# run Platformio #
|
|
812
|
+# #
|
|
813
|
+##########################################################################
|
813
|
814
|
|
814
|
|
-def run_PIO(dummy):
|
|
815
|
+
|
|
816
|
+# build platformio run -e target_env
|
|
817
|
+# clean platformio run --target clean -e target_env
|
|
818
|
+# upload platformio run --target upload -e target_env
|
|
819
|
+# traceback platformio run --target upload -e target_env
|
|
820
|
+# program platformio run --target program -e target_env
|
|
821
|
+# test platformio test upload -e target_env
|
|
822
|
+# remote platformio remote run --target upload -e target_env
|
|
823
|
+# debug platformio debug -e target_env
|
|
824
|
+
|
|
825
|
+
|
|
826
|
+def sys_PIO():
|
815
|
827
|
|
816
|
828
|
##########################################################################
|
817
|
829
|
# #
|
818
|
|
- # run Platformio #
|
|
830
|
+ # run Platformio inside the same shell as this Python script #
|
819
|
831
|
# #
|
820
|
832
|
##########################################################################
|
821
|
833
|
|
|
834
|
+ global build_type
|
|
835
|
+ global target_env
|
|
836
|
+
|
|
837
|
+ import os
|
|
838
|
+
|
|
839
|
+ print('build_type: ', build_type)
|
|
840
|
+ print('starting platformio')
|
|
841
|
+
|
|
842
|
+ if build_type == 'build':
|
|
843
|
+ # pio_result = os.system("echo -en '\033c'")
|
|
844
|
+ pio_result = os.system('platformio run -e ' + target_env)
|
|
845
|
+ elif build_type == 'clean':
|
|
846
|
+ pio_result = os.system('platformio run --target clean -e ' + target_env)
|
|
847
|
+ elif build_type == 'upload':
|
|
848
|
+ pio_result = os.system('platformio run --target upload -e ' + target_env)
|
|
849
|
+ elif build_type == 'traceback':
|
|
850
|
+ pio_result = os.system('platformio run --target upload -e ' + target_env)
|
|
851
|
+ elif build_type == 'program':
|
|
852
|
+ pio_result = os.system('platformio run --target program -e ' + target_env)
|
|
853
|
+ elif build_type == 'test':
|
|
854
|
+ pio_result = os.system('platformio test upload -e ' + target_env)
|
|
855
|
+ elif build_type == 'remote':
|
|
856
|
+ pio_result = os.system('platformio remote run --target program -e ' + target_env)
|
|
857
|
+ elif build_type == 'debug':
|
|
858
|
+ pio_result = os.system('platformio debug -e ' + target_env)
|
|
859
|
+ else:
|
|
860
|
+ print('ERROR - unknown build type: ', build_type)
|
|
861
|
+ raise SystemExit(0) # kill everything
|
|
862
|
+
|
|
863
|
+ # stream output from subprocess and split it into lines
|
|
864
|
+ #for line in iter(pio_subprocess.stdout.readline, ''):
|
|
865
|
+ # line_print(line.replace('\n', ''))
|
822
|
866
|
|
823
|
|
- # build platformio run -e target_env
|
824
|
|
- # clean platformio run --target clean -e target_env
|
825
|
|
- # upload platformio run --target upload -e target_env
|
826
|
|
- # traceback platformio run --target upload -e target_env
|
827
|
|
- # program platformio run --target program -e target_env
|
828
|
|
- # test platformio test upload -e target_env
|
829
|
|
- # remote platformio remote run --target upload -e target_env
|
830
|
|
- # debug platformio debug -e target_env
|
831
|
867
|
|
|
868
|
+ # append info used to run PlatformIO
|
|
869
|
+ # write_to_screen_queue('\nBoard name: ' + board_name + '\n') # put build info at the bottom of the screen
|
|
870
|
+ # write_to_screen_queue('Build type: ' + build_type + '\n')
|
|
871
|
+ # write_to_screen_queue('Environment used: ' + target_env + '\n')
|
|
872
|
+ # write_to_screen_queue(str(datetime.now()) + '\n')
|
|
873
|
+
|
|
874
|
+# end - sys_PIO
|
|
875
|
+
|
|
876
|
+
|
|
877
|
+
|
|
878
|
+def run_PIO(dummy):
|
832
|
879
|
|
833
|
880
|
global build_type
|
834
|
881
|
global target_env
|
|
@@ -906,6 +953,7 @@ def run_PIO(dummy):
|
906
|
953
|
# end - run_PIO
|
907
|
954
|
|
908
|
955
|
|
|
956
|
+
|
909
|
957
|
########################################################################
|
910
|
958
|
|
911
|
959
|
import time
|
|
@@ -926,7 +974,6 @@ from tkMessageBox import askokcancel
|
926
|
974
|
import tkFileDialog
|
927
|
975
|
|
928
|
976
|
|
929
|
|
-
|
930
|
977
|
class output_window(Text):
|
931
|
978
|
# based on Super Text
|
932
|
979
|
global continue_updates
|
|
@@ -1238,10 +1285,14 @@ def main():
|
1238
|
1285
|
os.environ["TARGET_ENV"] = target_env
|
1239
|
1286
|
os.environ["BOARD_NAME"] = board_name
|
1240
|
1287
|
|
1241
|
|
- auto_build = output_window()
|
1242
|
|
- auto_build.start_thread() # executes the "run_PIO" function
|
|
1288
|
+ # Re-use the VSCode terminal, if possible
|
|
1289
|
+ if os.environ.get('PLATFORMIO_CALLER', '') == 'vscode':
|
|
1290
|
+ sys_PIO()
|
|
1291
|
+ else:
|
|
1292
|
+ auto_build = output_window()
|
|
1293
|
+ auto_build.start_thread() # executes the "run_PIO" function
|
1243
|
1294
|
|
1244
|
|
- auto_build.root.mainloop()
|
|
1295
|
+ auto_build.root.mainloop()
|
1245
|
1296
|
|
1246
|
1297
|
|
1247
|
1298
|
|