mirror of
https://github.com/esp8266/Arduino.git
synced 2025-06-07 16:23:38 +03:00
Do not show python traceback when esptool fails (#8603)
Path separator already handled by python Empty strings are false, implicitly checking for length
This commit is contained in:
parent
8bfc2e9eab
commit
07789808b9
@ -6,17 +6,17 @@
|
|||||||
# First parameter is pyserial path, second is esptool path, then a series of command arguments
|
# First parameter is pyserial path, second is esptool path, then a series of command arguments
|
||||||
# i.e. upload.py tools/pyserial tools/esptool write_flash file 0x0
|
# i.e. upload.py tools/pyserial tools/esptool write_flash file 0x0
|
||||||
|
|
||||||
import sys
|
|
||||||
import os
|
import os
|
||||||
|
import sys
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
sys.argv.pop(0) # Remove executable name
|
sys.argv.pop(0) # Remove executable name
|
||||||
toolspath = os.path.dirname(os.path.realpath(__file__)).replace('\\', '/') # CWD in UNIX format
|
toolspath = os.path.dirname(os.path.realpath(__file__))
|
||||||
try:
|
try:
|
||||||
sys.path.insert(0, toolspath + "/pyserial") # Add pyserial dir to search path
|
sys.path.insert(0, os.path.join(toolspath, "pyserial")) # Add pyserial dir to search path
|
||||||
sys.path.insert(0, toolspath + "/esptool") # Add esptool dir to search path
|
sys.path.insert(0, os.path.join(toolspath, "esptool")) # Add esptool dir to search path
|
||||||
import esptool # If this fails, we can't continue and will bomb below
|
import esptool # If this fails, we can't continue and will bomb below
|
||||||
except Exception:
|
except ImportError:
|
||||||
sys.stderr.write("pyserial or esptool directories not found next to this upload.py tool.\n")
|
sys.stderr.write("pyserial or esptool directories not found next to this upload.py tool.\n")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ write_addr = '0x0'
|
|||||||
erase_addr = ''
|
erase_addr = ''
|
||||||
erase_len = ''
|
erase_len = ''
|
||||||
|
|
||||||
while len(sys.argv):
|
while sys.argv:
|
||||||
thisarg = sys.argv.pop(0)
|
thisarg = sys.argv.pop(0)
|
||||||
|
|
||||||
# We silently replace the 921kbaud setting with 460k to enable backward
|
# We silently replace the 921kbaud setting with 460k to enable backward
|
||||||
@ -45,25 +45,30 @@ while len(sys.argv):
|
|||||||
elif thisarg == 'write_flash':
|
elif thisarg == 'write_flash':
|
||||||
write_addr = sys.argv.pop(0)
|
write_addr = sys.argv.pop(0)
|
||||||
binary = sys.argv.pop(0)
|
binary = sys.argv.pop(0)
|
||||||
elif len(thisarg):
|
elif thisarg:
|
||||||
cmdline = cmdline + [thisarg]
|
cmdline = cmdline + [thisarg]
|
||||||
|
|
||||||
cmdline = cmdline + ['write_flash']
|
cmdline = cmdline + ['write_flash']
|
||||||
if len(write_option):
|
if write_option:
|
||||||
cmdline = cmdline + [write_option]
|
cmdline = cmdline + [write_option]
|
||||||
cmdline = cmdline + ['--flash_size', 'detect']
|
cmdline = cmdline + ['--flash_size', 'detect']
|
||||||
cmdline = cmdline + [write_addr, binary]
|
cmdline = cmdline + [write_addr, binary]
|
||||||
|
|
||||||
erase_file = ''
|
erase_file = ''
|
||||||
if len(erase_addr):
|
if erase_addr:
|
||||||
# Generate temporary empty (0xff) file
|
# Generate temporary empty (0xff) file
|
||||||
eraser = tempfile.mkstemp()
|
eraser = tempfile.mkstemp()
|
||||||
erase_file = eraser[1]
|
erase_file = eraser[1]
|
||||||
os.write(eraser[0], bytearray([255] * int(erase_len, 0)))
|
os.write(eraser[0], bytearray([0xff] * int(erase_len, 0)))
|
||||||
os.close(eraser[0])
|
os.close(eraser[0])
|
||||||
cmdline = cmdline + [erase_addr, erase_file]
|
cmdline = cmdline + [erase_addr, erase_file]
|
||||||
|
|
||||||
|
try:
|
||||||
esptool.main(cmdline)
|
esptool.main(cmdline)
|
||||||
|
except esptool.FatalError as e:
|
||||||
if len(erase_file):
|
sys.stderr.write('\nA fatal esptool.py error occurred: %s' % e)
|
||||||
|
finally:
|
||||||
|
if erase_file:
|
||||||
os.remove(erase_file)
|
os.remove(erase_file)
|
||||||
|
if sys.exc_info:
|
||||||
|
sys.exit(2)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user