Sergio Gasquez 723d3f2800 chore: 🎨 Add logs
2022-09-27 14:01:58 +00:00
2022-09-26 17:43:39 +00:00
2022-09-26 15:34:59 +02:00
2022-09-26 17:44:01 +00:00
2022-09-27 14:01:58 +00:00
2022-09-26 08:34:01 +00:00
2022-09-27 13:58:27 +00:00
2022-09-21 12:22:01 +02:00
2022-09-21 12:21:25 +02:00
2022-09-27 13:58:52 +00:00

EspUp

Continuous Integration Security audit Open in Remote - Containers

Tool for installing and maintaining ESP Rust toolchain.

Warning

This crate is still in early development (See Known Issues section). Use at your own risk and, please, report any issues that you find!

Requirements

Windows

  • Python must be installed and the version should be between 3.6 and 3.10.

Installation

cargo install espup --git https://github.com/SergioGasquez/espup

Usage

Warning

Only install subcommand is available at the momment.

USAGE:
    espup <SUBCOMMAND>

OPTIONS:
    -h, --help       Print help information
    -V, --version    Print version information

SUBCOMMANDS:
    help         Print this message or the help of the given subcommand(s)
    install      Installs esp-rs environment
    uninstall    Uninstalls esp-rs environment
    update       Updates Xtensa Rust toolchain

Install Subcommand

EspUp allows you to customise your installation paths by setting the environment variables CARGO_HOME and RUSTUP_HOME before running the executable. Xtensa Rust toolchain will be installed under <rustup_home>/toolchains/esp.

USAGE:
    espup install [OPTIONS]

OPTIONS:
    -c, --extra-crates <EXTRA_CRATES>
            Comma or space list of extra crates to install

            [default: cargo-espflash]

    -e, --espidf-version <ESPIDF_VERSION>
            ESP-IDF version to install. If empty, no esp-idf is installed. Version format:

            - `commit:<hash>`: Uses the commit `<hash>` of the `esp-idf` repository.

            - `tag:<tag>`: Uses the tag `<tag>` of the `esp-idf` repository.

            - `branch:<branch>`: Uses the branch `<branch>` of the `esp-idf` repository.

            - `v<major>.<minor>` or `<major>.<minor>`: Uses the tag `v<major>.<minor>` of the
            `esp-idf` repository.

            - `<branch>`: Uses the branch `<branch>` of the `esp-idf` repository.

    -f, --export-file <EXPORT_FILE>
            Destination of the generated export file

            [default: export-esp.sh]

    -h, --help
            Print help information

    -l, --log-level <LOG_LEVEL>
            Verbosity level of the logs

            [default: info]
            [possible values: debug, info, warn, error]

    -m, --profile-minimal
            Minifies the installation

    -n, --nightly-version <NIGHTLY_VERSION>
            Nightly Rust toolchain version

            [default: nightly]

    -t, --targets <TARGETS>
            Comma or space separated list of targets [esp32,esp32s2,esp32s3,esp32c3,all]

            [default: all]

    -v, --toolchain-version <TOOLCHAIN_VERSION>
            Xtensa Rust toolchain version

            [default: 1.64.0.0]

Uninstall Subcommand

USAGE:
    espup uninstall [OPTIONS]

OPTIONS:
    -c, --remove-clang
            Removes clang

    -e, --espidf-version <ESPIDF_VERSION>
            ESP-IDF version to uninstall. If empty, no esp-idf is uninsalled. Version format:

            - `commit:<hash>`: Uses the commit `<hash>` of the `esp-idf` repository.

            - `tag:<tag>`: Uses the tag `<tag>` of the `esp-idf` repository.

            - `branch:<branch>`: Uses the branch `<branch>` of the `esp-idf` repository.

            - `v<major>.<minor>` or `<major>.<minor>`: Uses the tag `v<major>.<minor>` of the
            `esp-idf` repository.

            - `<branch>`: Uses the branch `<branch>` of the `esp-idf` repository.

    -h, --help
            Print help information

    -l, --log-level <LOG_LEVEL>
            Verbosity level of the logs

            [default: info]
            [possible values: debug, info, warn, error]

Update Subcommand

USAGE:
    espup update [OPTIONS]

OPTIONS:
    -h, --help
            Print help information

    -l, --log-level <LOG_LEVEL>
            Verbosity level of the logs [default: info] [possible values: debug, info, warn, error]

    -v, --toolchain-version <TOOLCHAIN_VERSION>
            Xtensa Rust toolchain version [default: 1.64.0.0]

Known Issues

  • When installing esp-idf in Windows, only all targets is wokring. If you try to install any esp-idf version for any target combination that does not include all of them, you will have issues activating the environment.

Troubleshooting

  • In Windows, when installing esp-idf fails with
ERROR: Could not find a version that satisfies the requirement windows-curses; sys_platform == "win32" (from esp-windows-curses) (from versions: none)
ERROR: No matching distribution found for windows-curses; sys_platform == "win32"
Traceback (most recent call last):
  File "<home_dir>/.espressif\esp-idf-ae062fbba3ded0aa\release-v4.4\tools\idf_tools.py", line 1973, in <module>
main(sys.argv[1:])
  File "<home_dir>/.espressif\esp-idf-ae062fbba3ded0aa\release-v4.4\tools\idf_tools.py", line 1969, in main
action_func(args)
  File "<home_dir>/.espressif\esp-idf-ae062fbba3ded0aa\release-v4.4\tools\idf_tools.py", line 1619, in action_install_python_env
subprocess.check_call(run_args, stdout=sys.stdout, stderr=sys.stderr, env=env_copy)
  File "C:\Python311\Lib\subprocess.py", line 413, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['<home_dir>/.espressif\\python_env\\idf4.4_py3.11_env\\Scripts\\python.exe', '-m', 'pip', 'install', '--no-warn-script-location', '-r', <home_dir>/.espressif\\esp-idf-ae062fbba3ded0aa\\release-v4.4\\requirements.txt', '--extra-index-url', 'https://dl.espressif.com/pypi']' returned non-zero exit status 1.
Error: Could not install esp-idf

Solution: This is due to python 3.11 being used. Use a python version between 3.6 and 3.10

License

Licensed under either of:

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Description
Tool for installing and maintaining Espressif Rust ecosystem.
Readme 2 MiB
Languages
Rust 99%
Dockerfile 1%