Skip to content

Commit f746647

Browse files
committed
Add README
1 parent 8787d40 commit f746647

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

README.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Minimal command-line interface using a plugin-based architecture
2+
3+
This project demonstrates a minimal (but featureful) command-line interface (CLI) using a plugin-based architecture (PBA).
4+
The CLI itself is constructed using [Typer](https://typer.tiangolo.com).
5+
6+
The PBA is achieved using a combination of:
7+
8+
- [pipx](https://pypa.github.io/pipx/)
9+
- [importlib](https://docs.python.org/3/library/importlib.html)
10+
- [packaging](https://packaging.pypa.io/)
11+
- [Libraries.io](https://libraries.io/)
12+
13+
## Installation
14+
15+
Install the core CLI using the following command:
16+
17+
```shell
18+
$ pipx install minimal-pba-cli
19+
```
20+
21+
## Usage
22+
23+
List available commands using the help:
24+
25+
```shell
26+
$ pba-cli --help
27+
```
28+
29+
### Plugins
30+
31+
List available plugins using the following command (requires a Libraries.io API key):
32+
33+
```shell
34+
LIBRARIES_IO_API_KEY=<your API key> pba-cli plugin catalog
35+
```
36+
37+
Install a plugin using the following command:
38+
39+
```shell
40+
$ pba-cli plugin install <plugin name>
41+
```
42+
43+
List installed plugins using the following command:
44+
45+
```shell
46+
$ pba-cli plugin list
47+
```
48+
49+
Install a plugin from a local directory using the following command:
50+
51+
```shell
52+
$ pba-cli plugin install-local <path to plugin directory>
53+
```
54+
55+
Uninstall a plugin using the following command:
56+
57+
```shell
58+
$ pba-cli plugin uninstall <plugin name>
59+
```

0 commit comments

Comments
 (0)