File tree Expand file tree Collapse file tree 1 file changed +59
-0
lines changed
Expand file tree Collapse file tree 1 file changed +59
-0
lines changed Original file line number Diff line number Diff line change 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+ ```
You can’t perform that action at this time.
0 commit comments