devenv-inspector 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +201 -0
- package/cli/Dockerfile +22 -0
- package/cli/README.md +139 -0
- package/cli/bin/devenv.js +37 -0
- package/cli/media/screenshot-cli.png +0 -0
- package/cli/package-lock.json +670 -0
- package/cli/package.json +43 -0
- package/cli/src/commands/info.js +52 -0
- package/cli/src/commands/list.js +31 -0
- package/cli/src/commands/packages.js +67 -0
- package/cli/src/commands/uninstall.js +60 -0
- package/cli/src/detectors.js +43 -0
- package/cli/src/parsers.js +100 -0
- package/cli/src/shell.js +28 -0
- package/electron.vite.config.js +14 -0
- package/media/logo.png +0 -0
- package/media/screenshot.png +0 -0
- package/out/main/index.js +214 -0
- package/out/preload/index.js +7 -0
- package/out/renderer/assets/index-BzF4Ak0A.js +7159 -0
- package/out/renderer/assets/index-Dp5c_1B_.css +390 -0
- package/out/renderer/index.html +13 -0
- package/package.json +53 -0
- package/src/main/detectors.js +43 -0
- package/src/main/index.js +39 -0
- package/src/main/ipcHandlers.js +51 -0
- package/src/main/parsers.js +101 -0
- package/src/main/shell.js +28 -0
- package/src/preload/index.js +8 -0
- package/src/renderer/index.html +12 -0
- package/src/renderer/src/App.css +394 -0
- package/src/renderer/src/App.jsx +97 -0
- package/src/renderer/src/components/ConfirmDialog.jsx +23 -0
- package/src/renderer/src/components/PackageTable.jsx +107 -0
- package/src/renderer/src/components/RuntimeCard.jsx +14 -0
- package/src/renderer/src/main.jsx +10 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 DevEnv Inspector Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="media/logo.png" alt="DevEnv Inspector Logo" width="120" />
|
|
3
|
+
|
|
4
|
+
<h1>DevEnv Inspector</h1>
|
|
5
|
+
|
|
6
|
+
<p>A unified desktop GUI for inspecting and managing your development runtimes and global packages — no terminal required.</p>
|
|
7
|
+
|
|
8
|
+
<p>
|
|
9
|
+
<img src="https://img.shields.io/badge/version-0.1.0-5a7af5?style=for-the-badge" alt="Version" />
|
|
10
|
+
<img src="https://img.shields.io/badge/platform-macOS-lightgrey?style=for-the-badge&logo=apple" alt="Platform" />
|
|
11
|
+
<img src="https://img.shields.io/badge/license-MIT-44c98b?style=for-the-badge" alt="License" />
|
|
12
|
+
<img src="https://img.shields.io/badge/open%20source-%E2%9D%A4-e05454?style=for-the-badge" alt="Open Source" />
|
|
13
|
+
<a href="https://www.npmjs.com/package/devenv-inspector-cli">
|
|
14
|
+
<img src="https://img.shields.io/npm/v/devenv-inspector-cli?style=for-the-badge&logo=npm&color=cc3534" alt="npm CLI" />
|
|
15
|
+
</a>
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
<p>
|
|
19
|
+
<a href="https://github.com/ali-aldahmani/devenv-inspector/issues">
|
|
20
|
+
<img src="https://img.shields.io/badge/Report%20a%20Bug-e05454?style=for-the-badge&logo=github&logoColor=white" alt="Report Bug" />
|
|
21
|
+
</a>
|
|
22
|
+
<a href="https://github.com/ali-aldahmani/devenv-inspector/issues">
|
|
23
|
+
<img src="https://img.shields.io/badge/Request%20Feature-5a7af5?style=for-the-badge&logo=github&logoColor=white" alt="Request Feature" />
|
|
24
|
+
</a>
|
|
25
|
+
<a href="https://github.com/ali-aldahmani/devenv-inspector/fork">
|
|
26
|
+
<img src="https://img.shields.io/badge/Fork%20this%20repo-44c98b?style=for-the-badge&logo=github&logoColor=white" alt="Fork" />
|
|
27
|
+
</a>
|
|
28
|
+
</p>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## What is this?
|
|
34
|
+
|
|
35
|
+
Developers who work across Python, Node.js, and Conda constantly switch between terminal commands just to see what's installed. DevEnv Inspector puts it all in one window — version badges, a searchable package list, and one-click uninstallation.
|
|
36
|
+
|
|
37
|
+
<div align="center">
|
|
38
|
+
<img src="media/screenshot.png" alt="DevEnv Inspector Screenshot" width="780" />
|
|
39
|
+
</div>
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Features
|
|
44
|
+
|
|
45
|
+
- **Runtime detection** — instantly shows installed versions of Python, Conda, and Node.js
|
|
46
|
+
- **Unified package table** — all pip, conda, and npm global packages in one searchable list
|
|
47
|
+
- **Safe uninstallation** — confirmation dialog before any package is removed
|
|
48
|
+
- **Filter by manager** — quickly scope the list to pip / conda / npm
|
|
49
|
+
- **Graceful fallbacks** — missing runtimes show "Not Installed" and hide irrelevant packages
|
|
50
|
+
- **No internet required** — everything runs locally against your machine
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## CLI Companion
|
|
55
|
+
|
|
56
|
+
Prefer the terminal? The same functionality is available as a standalone npm package — **[devenv-inspector-cli on npm](https://www.npmjs.com/package/devenv-inspector-cli)**:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npm install -g devenv-inspector-cli
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
devenv list # show all runtimes
|
|
64
|
+
devenv packages # list all global packages
|
|
65
|
+
devenv packages --runtime pip # filter by manager
|
|
66
|
+
devenv uninstall numpy --runtime conda
|
|
67
|
+
devenv info python
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
> Source lives in [`cli/`](./cli) — same repo, zero Electron. Docker support included.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Built With
|
|
75
|
+
|
|
76
|
+
<div align="center">
|
|
77
|
+
<img src="https://skillicons.dev/icons?i=electron,react,vite,nodejs,python,npm,yarn,pnpm,docker,git&theme=dark" />
|
|
78
|
+
</div>
|
|
79
|
+
|
|
80
|
+
<div align="center">
|
|
81
|
+
|
|
82
|
+
| Technology | Role |
|
|
83
|
+
|---|---|
|
|
84
|
+
| <img src="https://img.shields.io/badge/Electron-47848f?style=flat-square&logo=electron&logoColor=white" /> | Desktop shell & system command execution |
|
|
85
|
+
| <img src="https://img.shields.io/badge/React-18-61dafb?style=flat-square&logo=react&logoColor=black" /> | Renderer UI & component state |
|
|
86
|
+
| <img src="https://img.shields.io/badge/Vite-646cff?style=flat-square&logo=vite&logoColor=white" /> | Build tooling via electron-vite |
|
|
87
|
+
| <img src="https://img.shields.io/badge/Node.js-339933?style=flat-square&logo=node.js&logoColor=white" /> | Runtime & IPC bridge |
|
|
88
|
+
| <img src="https://img.shields.io/badge/Python-3776ab?style=flat-square&logo=python&logoColor=white" /> | pip package detection & uninstall |
|
|
89
|
+
| <img src="https://img.shields.io/badge/npm-cc3534?style=flat-square&logo=npm&logoColor=white" /> | Global npm package detection |
|
|
90
|
+
| <img src="https://img.shields.io/badge/Yarn-2c8ebb?style=flat-square&logo=yarn&logoColor=white" /> | Global yarn package detection & uninstall |
|
|
91
|
+
| <img src="https://img.shields.io/badge/pnpm-f69220?style=flat-square&logo=pnpm&logoColor=white" /> | Global pnpm package detection & uninstall |
|
|
92
|
+
| <img src="https://img.shields.io/badge/Docker-2496ed?style=flat-square&logo=docker&logoColor=white" /> | Containerized CLI environment |
|
|
93
|
+
| <img src="https://img.shields.io/badge/Git-f05032?style=flat-square&logo=git&logoColor=white" /> | Version control |
|
|
94
|
+
|
|
95
|
+
</div>
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Getting Started
|
|
100
|
+
|
|
101
|
+
### Prerequisites
|
|
102
|
+
|
|
103
|
+
- [Node.js](https://nodejs.org) v18 or later
|
|
104
|
+
- npm v9 or later
|
|
105
|
+
|
|
106
|
+
### Installation
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
# Clone the repository
|
|
110
|
+
git clone https://github.com/ali-aldahmani/devenv-inspector.git
|
|
111
|
+
|
|
112
|
+
# Navigate into the project
|
|
113
|
+
cd devenv-inspector
|
|
114
|
+
|
|
115
|
+
# Install dependencies
|
|
116
|
+
npm install
|
|
117
|
+
|
|
118
|
+
# Start the app in development mode
|
|
119
|
+
npm run dev
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Package as a macOS app
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
npm run package
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
This builds the source and produces a `.dmg` installer in `dist/`:
|
|
129
|
+
- `DevEnv Inspector-0.1.0-arm64.dmg` — Apple Silicon
|
|
130
|
+
- `DevEnv Inspector-0.1.0.dmg` — Intel
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## How It Works
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
┌─────────────────────────────────────────────┐
|
|
138
|
+
│ Renderer Process │
|
|
139
|
+
│ React UI — table, filters, dialogs │
|
|
140
|
+
└──────────────────┬──────────────────────────┘
|
|
141
|
+
│ IPC (contextBridge)
|
|
142
|
+
┌──────────────────▼──────────────────────────┐
|
|
143
|
+
│ Main Process │
|
|
144
|
+
│ detectors.js → python3 / conda / node │
|
|
145
|
+
│ parsers.js → pip / conda / npm --json │
|
|
146
|
+
│ ipcHandlers.js → uninstall routing │
|
|
147
|
+
│ shell.js → login shell executor │
|
|
148
|
+
└─────────────────────────────────────────────┘
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Every command runs through the user's login shell (`zsh -i -l -c`) so that conda, pyenv, nvm, and other shell-managed tools are always found — both in dev mode and in the packaged `.app`.
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Supported Runtimes (v0.1.0)
|
|
156
|
+
|
|
157
|
+
| Runtime | Packages | Uninstall |
|
|
158
|
+
|---|---|---|
|
|
159
|
+
| Python | `python3 -m pip list` | `python3 -m pip uninstall -y` |
|
|
160
|
+
| Anaconda | `conda list --json` | `conda remove -y` |
|
|
161
|
+
| Node.js | `npm list -g --depth=0` | `npm uninstall -g` |
|
|
162
|
+
| Yarn | `yarn global list --json` | `yarn global remove` |
|
|
163
|
+
| pnpm | `pnpm list -g --json` | `pnpm remove -g` |
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Roadmap
|
|
168
|
+
|
|
169
|
+
- [ ] nvm / pyenv support
|
|
170
|
+
- [ ] Virtual environment detection
|
|
171
|
+
- [ ] Package update detection
|
|
172
|
+
- [ ] Dependency graph visualization
|
|
173
|
+
- [ ] Dark / light mode toggle
|
|
174
|
+
- [ ] Plugin system for new package managers
|
|
175
|
+
- [ ] Windows & Linux support
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Contributing
|
|
180
|
+
|
|
181
|
+
Contributions are what make open source great. Any contribution you make is **hugely appreciated**.
|
|
182
|
+
|
|
183
|
+
1. Fork the repository
|
|
184
|
+
2. Create a feature branch — `git checkout -b feature/your-idea`
|
|
185
|
+
3. Commit your changes — `git commit -m "Add your feature"`
|
|
186
|
+
4. Push to the branch — `git push origin feature/your-idea`
|
|
187
|
+
5. Open a Pull Request
|
|
188
|
+
|
|
189
|
+
</a>
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## License
|
|
194
|
+
|
|
195
|
+
Distributed under the **MIT License** — see [`LICENSE`](LICENSE) for details.
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
<div align="center">
|
|
200
|
+
<sub>Built with care for developers who just want to see what's on their machine.</sub>
|
|
201
|
+
</div>
|
package/cli/Dockerfile
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# devenv-inspector-cli
|
|
2
|
+
# Provides a ready-to-run environment with Python + Node.js + the CLI pre-installed.
|
|
3
|
+
# Note: commands inspect packages inside this container, not your host machine.
|
|
4
|
+
|
|
5
|
+
FROM node:20-slim
|
|
6
|
+
|
|
7
|
+
# Install Python 3 + pip
|
|
8
|
+
RUN apt-get update && apt-get install -y \
|
|
9
|
+
python3 \
|
|
10
|
+
python3-pip \
|
|
11
|
+
bash \
|
|
12
|
+
--no-install-recommends \
|
|
13
|
+
&& rm -rf /var/lib/apt/lists/*
|
|
14
|
+
|
|
15
|
+
# Use bash as the shell (zsh is not available in slim images)
|
|
16
|
+
ENV SHELL=/bin/bash
|
|
17
|
+
|
|
18
|
+
# Install the CLI globally from npm
|
|
19
|
+
RUN npm install -g devenv-inspector-cli
|
|
20
|
+
|
|
21
|
+
ENTRYPOINT ["devenv"]
|
|
22
|
+
CMD ["--help"]
|
package/cli/README.md
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
<h1>devenv-inspector-cli</h1>
|
|
3
|
+
<p>Inspect runtimes and manage global packages from your terminal — no GUI required.</p>
|
|
4
|
+
|
|
5
|
+
<p>
|
|
6
|
+
<img src="https://img.shields.io/badge/version-0.1.0-5a7af5?style=for-the-badge" alt="Version" />
|
|
7
|
+
<img src="https://img.shields.io/badge/platform-macOS-lightgrey?style=for-the-badge&logo=apple" alt="Platform" />
|
|
8
|
+
<img src="https://img.shields.io/badge/license-MIT-44c98b?style=for-the-badge" alt="License" />
|
|
9
|
+
<img src="https://img.shields.io/npm/v/devenv-inspector-cli?style=for-the-badge&logo=npm&color=cc3534" alt="npm" />
|
|
10
|
+
</p>
|
|
11
|
+
|
|
12
|
+
<img src="https://raw.githubusercontent.com/Ali-Aldahmani/devenv-inspector/main/cli/media/screenshot-cli.png" alt="devenv-inspector-cli screenshot" width="720" />
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
> Prefer a desktop GUI? Check out **[DevEnv Inspector](https://github.com/Ali-Aldahmani/devenv-inspector)** — the same features in a native macOS window.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Install
|
|
20
|
+
|
|
21
|
+
### via npm
|
|
22
|
+
```bash
|
|
23
|
+
npm install -g devenv-inspector-cli
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### via Docker
|
|
27
|
+
No Node.js or Python required — just Docker:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# Pull and run
|
|
31
|
+
docker run --rm ghcr.io/ali-aldahmani/devenv-inspector-cli list
|
|
32
|
+
docker run --rm ghcr.io/ali-aldahmani/devenv-inspector-cli packages
|
|
33
|
+
docker run --rm ghcr.io/ali-aldahmani/devenv-inspector-cli info python
|
|
34
|
+
|
|
35
|
+
# Or build locally from source
|
|
36
|
+
git clone https://github.com/Ali-Aldahmani/devenv-inspector.git
|
|
37
|
+
cd devenv-inspector/cli
|
|
38
|
+
docker build -t devenv-inspector-cli .
|
|
39
|
+
docker run --rm devenv-inspector-cli list
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
> **Note:** Docker runs in an isolated container — it shows packages installed inside the image, not on your host machine. Use the npm install for inspecting your own machine.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Commands
|
|
47
|
+
|
|
48
|
+
### `devenv list`
|
|
49
|
+
Show all installed runtimes with their versions.
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
$ devenv list
|
|
53
|
+
|
|
54
|
+
DevEnv Inspector — Runtimes
|
|
55
|
+
|
|
56
|
+
Python 3.13.5
|
|
57
|
+
Conda 26.1.0
|
|
58
|
+
Node.js 24.13.0
|
|
59
|
+
npm 11.6.2
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
### `devenv packages [--runtime <mgr>]`
|
|
65
|
+
List all global packages. Optionally filter by manager.
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
devenv packages # all packages
|
|
69
|
+
devenv packages --runtime pip # pip only
|
|
70
|
+
devenv packages --runtime conda # conda only
|
|
71
|
+
devenv packages --runtime npm # npm only
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
$ devenv packages --runtime npm
|
|
76
|
+
|
|
77
|
+
DevEnv Inspector — Packages (npm)
|
|
78
|
+
|
|
79
|
+
┌──────────────────────────────────────┬────────────────────┬──────────┐
|
|
80
|
+
│ Name │ Version │ Manager │
|
|
81
|
+
├──────────────────────────────────────┼────────────────────┼──────────┤
|
|
82
|
+
│ electron │ 33.4.0 │ npm │
|
|
83
|
+
└──────────────────────────────────────┴────────────────────┴──────────┘
|
|
84
|
+
1 package
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
### `devenv uninstall <package> --runtime <mgr>`
|
|
90
|
+
Uninstall a package with a confirmation prompt.
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
devenv uninstall requests --runtime pip
|
|
94
|
+
devenv uninstall numpy --runtime conda
|
|
95
|
+
devenv uninstall electron --runtime npm
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
$ devenv uninstall requests --runtime pip
|
|
100
|
+
? Uninstall requests via pip? (y/N) y
|
|
101
|
+
|
|
102
|
+
✓ requests uninstalled successfully.
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
### `devenv info <runtime>`
|
|
108
|
+
Show detailed info for a single runtime.
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
devenv info python
|
|
112
|
+
devenv info conda
|
|
113
|
+
devenv info node
|
|
114
|
+
devenv info npm
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
$ devenv info python
|
|
119
|
+
|
|
120
|
+
Python
|
|
121
|
+
|
|
122
|
+
Status Installed
|
|
123
|
+
Version 3.13.5
|
|
124
|
+
Packages 211 pip packages
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## How It Works
|
|
130
|
+
|
|
131
|
+
All commands run through your login shell (`zsh -i -l -c`) — the same approach as the GUI app — so conda, pyenv, nvm, and other shell-managed tools are always found.
|
|
132
|
+
|
|
133
|
+
Package names are validated against `/^[a-zA-Z0-9._\-@/]+$/` before any shell call to prevent injection.
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## License
|
|
138
|
+
|
|
139
|
+
MIT — see [LICENSE](../LICENSE)
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from 'commander'
|
|
3
|
+
import { listCommand } from '../src/commands/list.js'
|
|
4
|
+
import { packagesCommand } from '../src/commands/packages.js'
|
|
5
|
+
import { uninstallCommand } from '../src/commands/uninstall.js'
|
|
6
|
+
import { infoCommand } from '../src/commands/info.js'
|
|
7
|
+
|
|
8
|
+
const program = new Command()
|
|
9
|
+
|
|
10
|
+
program
|
|
11
|
+
.name('devenv')
|
|
12
|
+
.description('Inspect and manage your development runtimes and global packages')
|
|
13
|
+
.version('0.1.0')
|
|
14
|
+
|
|
15
|
+
program
|
|
16
|
+
.command('list')
|
|
17
|
+
.description('Show all installed runtimes and their versions')
|
|
18
|
+
.action(listCommand)
|
|
19
|
+
|
|
20
|
+
program
|
|
21
|
+
.command('packages')
|
|
22
|
+
.description('List all global packages')
|
|
23
|
+
.option('-r, --runtime <manager>', 'filter by manager: pip, conda, or npm')
|
|
24
|
+
.action(packagesCommand)
|
|
25
|
+
|
|
26
|
+
program
|
|
27
|
+
.command('uninstall <package>')
|
|
28
|
+
.description('Uninstall a package')
|
|
29
|
+
.requiredOption('-r, --runtime <manager>', 'package manager: pip, conda, or npm')
|
|
30
|
+
.action(uninstallCommand)
|
|
31
|
+
|
|
32
|
+
program
|
|
33
|
+
.command('info <runtime>')
|
|
34
|
+
.description('Show detailed info for a runtime (python, conda, node, npm)')
|
|
35
|
+
.action(infoCommand)
|
|
36
|
+
|
|
37
|
+
await program.parseAsync(process.argv)
|
|
Binary file
|