1#!/usr/bin/env python
2#
3# SPDX-FileCopyrightText: 2014-2022 Fredrik Ahlberg, Angus Gratton,
4# Espressif Systems (Shanghai) CO LTD, other contributors as noted.
5#
6# SPDX-License-Identifier: GPL-2.0-or-later
7
8# This executable script is a thin wrapper around the main functionality
9# in the esptool Python package
10
11# When updating this script, please also update espefuse.py and espsecure.py
12
13import contextlib
14import os
15import sys
16
17if os.name != "nt":
18    # Linux/macOS: remove current script directory to avoid importing this file
19    # as a module; we want to import the installed esptool module instead
20    with contextlib.suppress(ValueError):
21        executable_dir = os.path.dirname(sys.executable)
22        sys.path = [
23            path
24            for path in sys.path
25            if not path.endswith(("/bin", "/sbin")) and path != executable_dir
26        ]
27
28    # Linux/macOS: delete imported module entry to force Python to load
29    # the module from scratch; this enables importing esptool module in
30    # other Python scripts
31    with contextlib.suppress(KeyError):
32        del sys.modules["esptool"]
33
34import esptool
35
36if __name__ == "__main__":
37    esptool._main()
38