An open API service indexing awesome lists of open source software.

https://github.com/13point5/espy-cli

A Command Line application to manage your ESP-IDF projects with ease.
https://github.com/13point5/espy-cli

cli esp-idf esp32 esp8266 python3

Last synced: about 1 year ago
JSON representation

A Command Line application to manage your ESP-IDF projects with ease.

Awesome Lists containing this project

README

          

# espy-cli
A Command Line application to manage your ESP-IDF projects with ease.

# Installation
```
pip install espy-cli
```
> This assumes that python3 is the default python version in your system.

# Features
* Manage all your projects and change their configuration
* Use multiple IDF versions without the need to update Environment variables and then logout or reboot
* Change the IDF used in a project at any time

### Note
> Initially you need to configure 1 path in the IDF_PATH environment variable, **only once**.

> Projects are called apps.

> Before creating an app make sure you have added atleast 1 IDF path.

> In case you forget espy will remind you ;)

# Usage
1. Managing IDFs
* Add a new IDF
```
$ espy idf new -n idf1 -f /home/user/esp/esp-idf

Successfully added idf1 to config
```

* Get all or specific IDF(s)
```
$ espy idf get

+------+--------------------------------------+
| name | filepath |
+------+--------------------------------------+
| idf1 | /home/user/esp/esp-idf |
| idf2 | /home/user/esp/esp-idf-v3.3-beta3 |
+------+--------------------------------------+
```

```
$ espy idf get -n idf1

+------+--------------------------------------+
| name | filepath |
+------+--------------------------------------+
| idf1 | /home/user/esp/esp-idf |
+------+--------------------------------------+
```

* Modify a specific IDF
```
$ espy idf mod -n idf1

+------+--------------------------------------+
| name | filepath |
+------+--------------------------------------+
| idf1 | /home/user/esp/esp-idf-v3.3-beta3 |
+------+--------------------------------------+

Change the name? [y/N]: y
Enter the new name for the IDF: default

Change the path of the IDF? [y/N]: y
Enter the new path for the IDF: /home/user/esp/esp-idf

Note: If this IDF has been used in an app, modify them if needed.
Continue to modify IDF? [y/N]: y
Succesfully modified the IDF
```

* Delete all or specific IDF(s)
```
$ espy idf del

Delete all IDFs? [y/N]: y
Successfully deleted required IDF(s)
```

```
$ espy idf del -n idf1

Delete IDF: idf1 [y/N]: y
Successfully deleted required IDF(s)
```

2. Managing apps
* Create a new app
```
$ espy app new -n hello_world -idf idf1
Project created!

$ tree hello_world/
hello_world/
├── CMakelists.txt
├── main
│   ├── CMakelists.txt
│   ├── component.mk
│   └── main.c
└── Makefile

1 directory, 5 files
```

* Get all or specific App(s)
```
$ espy app get

+-------------+----------------------------------------------+------+---------------------------+
| name | filepath | idf | idfpath |
+-------------+----------------------------------------------+------+---------------------------+
| hello_world | /home/user/Documents/projects/hello_world | idf1 | /home/user/esp/esp-idf |
+-------------+----------------------------------------------+------+---------------------------+
```

* Modify an App
```
$ espy app mod -n hello_world

What do you wish to modify?
[1] Name
[2] IDF

Enter option number (0 for ALL): 0

Enter new name: bye
Change the name of the project? [y/N]: y

Name changed.

Enter new IDF's name: idf2
Change the IDF of the project? [y/N]: y

IDF changed.

Successfully modified app details!
```

3. View Config
```
$ espy show

Config location: /home/user/.config/espy-cli/config.json

IDFs

+------+--------------------------------------+
| name | filepath |
+------+--------------------------------------+
| idf1 | /home/user/esp/esp-idf |
| idf2 | /home/user/esp/esp-idf-v3.3-beta3 |
+------+--------------------------------------+

Apps

+-------------+----------------------------------------------+------+---------------------------+
| name | filepath | idf | idfpath |
+-------------+----------------------------------------------+------+---------------------------+
| hello_world | /home/user/Documents/projects/hello_world | idf1 | /home/user/esp/esp-idf |
+-------------+----------------------------------------------+------+---------------------------+
```