From a33d08928afac98a9bd8213dfc550dd9529b3f65 Mon Sep 17 00:00:00 2001
From: Scott Lahteine <github@thinkyhead.com>
Date: Sun, 9 Feb 2020 12:48:46 -0600
Subject: [PATCH] Tweak LPC1768 upload py script

---
 .../HAL/HAL_LPC1768/upload_extra_script.py    | 229 +++++++++---------
 1 file changed, 115 insertions(+), 114 deletions(-)

diff --git a/Marlin/src/HAL/HAL_LPC1768/upload_extra_script.py b/Marlin/src/HAL/HAL_LPC1768/upload_extra_script.py
index 79c5d43eaa..9b0d0617a0 100755
--- a/Marlin/src/HAL/HAL_LPC1768/upload_extra_script.py
+++ b/Marlin/src/HAL/HAL_LPC1768/upload_extra_script.py
@@ -16,129 +16,130 @@ current_OS = platform.system()
 Import("env")
 
 def print_error(e):
-    print('\nUnable to find destination disk (' + e + ')\n' \
-          'Please select it in platformio.ini using the upload_port keyword ' \
-          '(https://docs.platformio.org/en/latest/projectconf/section_env_upload.html) ' \
-          'or copy the firmware (.pio/build/' + env.get('PIOENV') + '/firmware.bin) manually to the appropriate disk\n')
+	print('\nUnable to find destination disk (%s)\n' \
+		  'Please select it in platformio.ini using the upload_port keyword ' \
+		  '(https://docs.platformio.org/en/latest/projectconf/section_env_upload.html) ' \
+		  'or copy the firmware (.pio/build/%s/firmware.bin) manually to the appropriate disk\n' \
+		  %(e, env.get('PIOENV')))
 
 try:
-    if current_OS == 'Windows':
-        #
-        # platformio.ini will accept this for a Windows upload port designation: 'upload_port = L:'
-        #   Windows - doesn't care about the disk's name, only cares about the drive letter
-        #
+	if current_OS == 'Windows':
+		#
+		# platformio.ini will accept this for a Windows upload port designation: 'upload_port = L:'
+		#   Windows - doesn't care about the disk's name, only cares about the drive letter
+		#
 
-        #
-        # get all drives on this computer
-        #
-        import subprocess
-        # typical result (string): 'Drives: C:\ D:\ E:\ F:\ G:\ H:\ I:\ J:\ K:\ L:\ M:\ Y:\ Z:\'
-        driveStr = str(subprocess.check_output("fsutil fsinfo drives"))
-        # typical result (string): 'C:\ D:\ E:\ F:\ G:\ H:\ I:\ J:\ K:\ L:\ M:\ Y:\ Z:\'
-        # driveStr = driveStr.strip().lstrip('Drives: ') <- Doesn't work in other Languages as English. In German is "Drives:" = "Laufwerke:"
-        FirstFound = driveStr.find(':',0,-1)         # Find the first ":" and
-        driveStr = driveStr[FirstFound + 1 : -1]     # truncate to the rest
-        # typical result (array of stings): ['C:\\', 'D:\\', 'E:\\', 'F:\\',
-        # 'G:\\', 'H:\\', 'I:\\', 'J:\\', 'K:\\', 'L:\\', 'M:\\', 'Y:\\', 'Z:\\']
-        drives = driveStr.split()
+		#
+		# get all drives on this computer
+		#
+		import subprocess
+		# typical result (string): 'Drives: C:\ D:\ E:\ F:\ G:\ H:\ I:\ J:\ K:\ L:\ M:\ Y:\ Z:\'
+		driveStr = str(subprocess.check_output("fsutil fsinfo drives"))
+		# typical result (string): 'C:\ D:\ E:\ F:\ G:\ H:\ I:\ J:\ K:\ L:\ M:\ Y:\ Z:\'
+		# driveStr = driveStr.strip().lstrip('Drives: ') <- Doesn't work in other Languages as English. In German is "Drives:" = "Laufwerke:"
+		FirstFound = driveStr.find(':',0,-1)         # Find the first ":" and
+		driveStr = driveStr[FirstFound + 1 : -1]     # truncate to the rest
+		# typical result (array of stings): ['C:\\', 'D:\\', 'E:\\', 'F:\\',
+		# 'G:\\', 'H:\\', 'I:\\', 'J:\\', 'K:\\', 'L:\\', 'M:\\', 'Y:\\', 'Z:\\']
+		drives = driveStr.split()
 
-        upload_disk = 'Disk not found'
-        target_file_found = False
-        target_drive_found = False
-        for drive in drives:
-            final_drive_name = drive.strip().rstrip('\\')   # typical result (string): 'C:'
-            try:
-                volume_info = str(subprocess.check_output('cmd /C dir ' + final_drive_name, stderr=subprocess.STDOUT))
-            except Exception as e:
-                continue
-            else:
-                if target_drive in volume_info and target_file_found == False:  # set upload if not found target file yet
-                    target_drive_found = True
-                    upload_disk = final_drive_name
-                if target_filename in volume_info:
-                    if target_file_found == False:
-                        upload_disk = final_drive_name
-                    target_file_found = True
+		upload_disk = 'Disk not found'
+		target_file_found = False
+		target_drive_found = False
+		for drive in drives:
+			final_drive_name = drive.strip().rstrip('\\')   # typical result (string): 'C:'
+			try:
+				volume_info = str(subprocess.check_output('cmd /C dir ' + final_drive_name, stderr=subprocess.STDOUT))
+			except Exception as e:
+				continue
+			else:
+				if target_drive in volume_info and target_file_found == False:  # set upload if not found target file yet
+					target_drive_found = True
+					upload_disk = final_drive_name
+				if target_filename in volume_info:
+					if target_file_found == False:
+						upload_disk = final_drive_name
+					target_file_found = True
 
-        #
-        # set upload_port to drive if found
-        #
+		#
+		# set upload_port to drive if found
+		#
 
-        if target_file_found == True or target_drive_found == True:
-            env.Replace(
-                UPLOAD_PORT=upload_disk
-            )
-            print('upload disk: ', upload_disk)
-        else:
-            print_error('Autodetect Error')
+		if target_file_found == True or target_drive_found == True:
+			env.Replace(
+				UPLOAD_PORT=upload_disk
+			)
+			print('upload disk: ', upload_disk)
+		else:
+			print_error('Autodetect Error')
 
-    elif current_OS == 'Linux':
-        #
-        # platformio.ini will accept this for a Linux upload port designation: 'upload_port = /media/media_name/drive'
-        #
-        upload_disk = 'Disk not found'
-        target_file_found = False
-        target_drive_found = False
-        drives = os.listdir(os.path.join(os.sep, 'media', getpass.getuser()))
-        if target_drive in drives:  # If target drive is found, use it.
-            target_drive_found = True
-            upload_disk = os.path.join(os.sep, 'media', getpass.getuser(), target_drive) + os.sep
-        else:
-            for drive in drives:
-                try:
-                    files = os.listdir(os.path.join(os.sep, 'media', getpass.getuser(), drive))
-                except:
-                    continue
-                else:
-                    if target_filename in files:
-                        upload_disk = os.path.join(os.sep, 'media', getpass.getuser(), drive) + os.sep
-                        target_file_found = True
-                        break
-        #
-        # set upload_port to drive if found
-        #
+	elif current_OS == 'Linux':
+		#
+		# platformio.ini will accept this for a Linux upload port designation: 'upload_port = /media/media_name/drive'
+		#
+		upload_disk = 'Disk not found'
+		target_file_found = False
+		target_drive_found = False
+		drives = os.listdir(os.path.join(os.sep, 'media', getpass.getuser()))
+		if target_drive in drives:  # If target drive is found, use it.
+			target_drive_found = True
+			upload_disk = os.path.join(os.sep, 'media', getpass.getuser(), target_drive) + os.sep
+		else:
+			for drive in drives:
+				try:
+					files = os.listdir(os.path.join(os.sep, 'media', getpass.getuser(), drive))
+				except:
+					continue
+				else:
+					if target_filename in files:
+						upload_disk = os.path.join(os.sep, 'media', getpass.getuser(), drive) + os.sep
+						target_file_found = True
+						break
+		#
+		# set upload_port to drive if found
+		#
 
-        if target_file_found or target_drive_found:
-            env.Replace(
-                UPLOAD_FLAGS="-P$UPLOAD_PORT",
-                UPLOAD_PORT=upload_disk
-            )
-            print('upload disk: ', upload_disk)
-        else:
-            print_error('Autodetect Error')
+		if target_file_found or target_drive_found:
+			env.Replace(
+				UPLOAD_FLAGS="-P$UPLOAD_PORT",
+				UPLOAD_PORT=upload_disk
+			)
+			print('upload disk: ', upload_disk)
+		else:
+			print_error('Autodetect Error')
 
-    elif current_OS == 'Darwin':  # MAC
-        #
-        # platformio.ini will accept this for a OSX upload port designation: 'upload_port = /media/media_name/drive'
-        #
-        upload_disk = 'Disk not found'
-        drives = os.listdir('/Volumes')  # human readable names
-        target_file_found = False
-        target_drive_found = False
-        if target_drive in drives and target_file_found == False:  # set upload if not found target file yet
-            target_drive_found = True
-            upload_disk = '/Volumes/' + target_drive + '/'
-        for drive in drives:
-            try:
-                filenames = os.listdir('/Volumes/' + drive + '/')   # will get an error if the drive is protected
-            except:
-                continue
-            else:
-                if target_filename in filenames:
-                    if target_file_found == False:
-                        upload_disk = '/Volumes/' + drive + '/'
-                    target_file_found = True
-        #
-        # set upload_port to drive if found
-        #
+	elif current_OS == 'Darwin':  # MAC
+		#
+		# platformio.ini will accept this for a OSX upload port designation: 'upload_port = /media/media_name/drive'
+		#
+		upload_disk = 'Disk not found'
+		drives = os.listdir('/Volumes')  # human readable names
+		target_file_found = False
+		target_drive_found = False
+		if target_drive in drives and target_file_found == False:  # set upload if not found target file yet
+			target_drive_found = True
+			upload_disk = '/Volumes/' + target_drive + '/'
+		for drive in drives:
+			try:
+				filenames = os.listdir('/Volumes/' + drive + '/')   # will get an error if the drive is protected
+			except:
+				continue
+			else:
+				if target_filename in filenames:
+					if target_file_found == False:
+						upload_disk = '/Volumes/' + drive + '/'
+					target_file_found = True
+		#
+		# set upload_port to drive if found
+		#
 
-        if target_file_found == True or target_drive_found == True:
-            env.Replace(
-                UPLOAD_PORT=upload_disk
-            )
-            print('\nupload disk: ', upload_disk, '\n')
-        else:
-            print_error('Autodetect Error')
+		if target_file_found == True or target_drive_found == True:
+			env.Replace(
+				UPLOAD_PORT=upload_disk
+			)
+			print('\nupload disk: ', upload_disk, '\n')
+		else:
+			print_error('Autodetect Error')
 
 except Exception as e:
-    print_error(str(e))
+	print_error(str(e))
-- 
GitLab