flutter-dev 0.1.4__tar.gz → 0.1.6__tar.gz
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.
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/CHANGELOG.md +29 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/PKG-INFO +39 -6
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/README.md +37 -5
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/fdev.py +28 -5
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/flutter_dev.egg-info/SOURCES.txt +6 -1
- flutter_dev-0.1.6/managers/gui.py +536 -0
- flutter_dev-0.1.6/managers/package.py +148 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/pyproject.toml +2 -1
- flutter_dev-0.1.6/tests/test_fdev_cli.py +65 -0
- flutter_dev-0.1.6/tests/test_gui.py +183 -0
- flutter_dev-0.1.6/tests/test_package_commands.py +129 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/.env.example +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/LICENSE +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/MANIFEST.in +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/common_utils.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/core/__init__.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/core/constants.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/core/state.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/create_page.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/gemini_api.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/git_diff_output_editor.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/install_legacy.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/managers/__init__.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/managers/ai.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/managers/app.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/managers/brew.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/managers/build.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/managers/datetime.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/managers/device.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/managers/doctor.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/managers/git.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/managers/git_account.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/managers/localization.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/managers/merge.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/managers/mirror.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/managers/project.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/managers/web_deploy.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/requirements.txt +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/setup.cfg +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/setup.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/switch_ai.py +0 -0
- {flutter_dev-0.1.4 → flutter_dev-0.1.6}/tests/test_localization.py +0 -0
|
@@ -2,6 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project are documented in this file.
|
|
4
4
|
|
|
5
|
+
## 0.1.6 - 2026-06-25
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Added `fdev upgrade` to update the local `flutter-dev` package from PyPI after detecting the current OS.
|
|
10
|
+
- Added `fdev delete` to uninstall the local `flutter-dev` package after detecting the current OS and confirming the destructive action.
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- `fdev upgrade` and `fdev delete` now print the exact Python executable they target before running `sys.executable -m pip`.
|
|
15
|
+
|
|
16
|
+
### Fixed
|
|
17
|
+
|
|
18
|
+
- Reworked the Tkinter dashboard layout to avoid platform-sensitive paned-window sizing that could open a blank `fdev` popup after installing from PyPI.
|
|
19
|
+
|
|
20
|
+
## 0.1.5 - 2026-06-24
|
|
21
|
+
|
|
22
|
+
### Added
|
|
23
|
+
|
|
24
|
+
- Added a Tkinter desktop dashboard that opens by running `fdev` with no command.
|
|
25
|
+
- Added GUI live log output with ANSI terminal color rendering.
|
|
26
|
+
- Added GUI buttons for all documented command groups, including mirror variants, AI provider shortcuts, and GitHub account subcommands.
|
|
27
|
+
- Added Python coverage for GUI command catalog, ANSI color parsing, and no-command CLI dispatch.
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
|
|
31
|
+
- Kept command help available through `fdev help`, `fdev --help`, and `fdev -h`.
|
|
32
|
+
- Documented Tkinter requirements for the desktop dashboard.
|
|
33
|
+
|
|
5
34
|
## 0.1.4 - 2026-06-15
|
|
6
35
|
|
|
7
36
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flutter-dev
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.6
|
|
4
4
|
Summary: A cross-platform CLI toolkit for Flutter development workflows.
|
|
5
5
|
Author: Royal Court BD
|
|
6
6
|
License-Expression: MIT
|
|
@@ -22,6 +22,7 @@ Classifier: Programming Language :: Python :: 3.10
|
|
|
22
22
|
Classifier: Programming Language :: Python :: 3.11
|
|
23
23
|
Classifier: Programming Language :: Python :: 3.12
|
|
24
24
|
Classifier: Programming Language :: Python :: 3.13
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
25
26
|
Classifier: Topic :: Software Development :: Build Tools
|
|
26
27
|
Classifier: Topic :: Utilities
|
|
27
28
|
Requires-Python: >=3.8
|
|
@@ -38,10 +39,10 @@ Dynamic: license-file
|
|
|
38
39
|
The package is published on PyPI as `flutter-dev` and installs console commands for day-to-day Flutter work:
|
|
39
40
|
|
|
40
41
|
```bash
|
|
41
|
-
pip install flutter-dev
|
|
42
|
+
python -m pip install flutter-dev
|
|
42
43
|
```
|
|
43
44
|
|
|
44
|
-
Current package metadata declares version `0.1.
|
|
45
|
+
Current package metadata declares version `0.1.6`, Python `>=3.8`, MIT license, and support for macOS, Linux, and Windows.
|
|
45
46
|
|
|
46
47
|
## Key Features
|
|
47
48
|
|
|
@@ -52,8 +53,9 @@ Current package metadata declares version `0.1.4`, Python `>=3.8`, MIT license,
|
|
|
52
53
|
- AI-assisted Git commits using Groq, Mistral, SambaNova, or OpenRouter-compatible chat completion APIs.
|
|
53
54
|
- Git workflow helpers for version tags, branch sync, deployment branch merge, discard, and GitHub account management through `gh`.
|
|
54
55
|
- Feature/page generator that creates a `lib/features/<name>` structure using the project's presenter/base-state pattern.
|
|
56
|
+
- Small Tkinter desktop dashboard opened by running `fdev` with no command, with live colored command logs.
|
|
55
57
|
- Environment diagnostics through `fdev doctor`.
|
|
56
|
-
- Small utilities for Homebrew cleanup, file merging from `paths.txt`, AI provider switching, and git diff prompt export.
|
|
58
|
+
- Small utilities for Homebrew cleanup, file merging from `paths.txt`, AI provider switching, PyPI self-upgrade/delete, and git diff prompt export.
|
|
57
59
|
|
|
58
60
|
## Installation
|
|
59
61
|
|
|
@@ -69,7 +71,9 @@ Verify the CLI is available:
|
|
|
69
71
|
fdev doctor
|
|
70
72
|
```
|
|
71
73
|
|
|
72
|
-
`pip install flutter-dev` installs the Python package, Python dependencies, and console scripts
|
|
74
|
+
`python -m pip install flutter-dev` installs the Python package, Python dependencies, and console scripts into the Python environment selected by `python`. It does not install Flutter, Dart, Git, Android SDK tools, CocoaPods, Firebase CLI, GitHub CLI, `scrcpy`, Java/JDK, or VS Code CLI.
|
|
75
|
+
|
|
76
|
+
The desktop dashboard uses Python Tkinter. Some Python distributions install this separately; for Homebrew Python, install the matching package such as `brew install python-tk@3.14`.
|
|
73
77
|
|
|
74
78
|
### Install From Source
|
|
75
79
|
|
|
@@ -118,12 +122,22 @@ Feature-specific external tools:
|
|
|
118
122
|
| GitHub CLI / `gh` | `fdev git ...` |
|
|
119
123
|
| VS Code CLI / `code` | Conflict helper in branch sync |
|
|
120
124
|
| Homebrew | `brew`, macOS `install-scrcpy` flow |
|
|
125
|
+
| Python Tkinter | Desktop dashboard opened by `fdev` |
|
|
121
126
|
|
|
122
127
|
## Quick Start
|
|
123
128
|
|
|
124
129
|
Run commands from the root of a Flutter project when they need `pubspec.yaml`, Android Gradle files, iOS files, or build outputs.
|
|
125
130
|
|
|
126
131
|
```bash
|
|
132
|
+
# Open the desktop dashboard
|
|
133
|
+
fdev
|
|
134
|
+
|
|
135
|
+
# Show command help
|
|
136
|
+
fdev help
|
|
137
|
+
|
|
138
|
+
# Upgrade the fdev CLI from PyPI
|
|
139
|
+
fdev upgrade
|
|
140
|
+
|
|
127
141
|
# Check environment and optional tools
|
|
128
142
|
fdev doctor
|
|
129
143
|
|
|
@@ -225,7 +239,11 @@ Switching GitHub accounts runs `gh auth switch` and `gh auth setup-git`, but it
|
|
|
225
239
|
|
|
226
240
|
| Command | Description |
|
|
227
241
|
| --- | --- |
|
|
242
|
+
| `fdev` | Opens a small Tkinter desktop dashboard for running `fdev` commands with live colored logs and command input. The terminal process stays running while the window is open. |
|
|
243
|
+
| `fdev help` | Shows command help without opening the dashboard. |
|
|
228
244
|
| `fdev doctor` | Checks platform, Python, Flutter/Dart/Git, Python packages, Android/iOS tools, optional CLIs, `.env`, Flutter project detection, and global `fdev` availability. |
|
|
245
|
+
| `fdev upgrade` | Detects the OS, then upgrades the active Python environment's `flutter-dev` package from PyPI with `python -m pip install --upgrade flutter-dev`. |
|
|
246
|
+
| `fdev delete` | Detects the OS, asks for confirmation, then uninstalls the active Python environment's `flutter-dev` package. Use `fdev delete --yes` to skip confirmation. |
|
|
229
247
|
| `fdev ai` | Shows the current AI provider and opens an interactive provider switch prompt. |
|
|
230
248
|
| `fdev ai <provider>` | Switches `DEFAULT_AI_SERVICE` to `groq`, `mistral`, `sambanova`, or `openrouter`. |
|
|
231
249
|
| `fdev brew` | Interactive Homebrew package manager for viewing packages, uninstalling with cleanup, clearing cache, and global cleanup. |
|
|
@@ -355,6 +373,7 @@ managers/mirror.py scrcpy install, mirror, wireless ADB setup
|
|
|
355
373
|
managers/git.py commit, tag, discard, branch sync, deployment merge
|
|
356
374
|
managers/git_account.py GitHub account manager around gh CLI
|
|
357
375
|
managers/doctor.py Environment diagnostics
|
|
376
|
+
managers/package.py PyPI self-upgrade and local uninstall commands
|
|
358
377
|
managers/ai.py AI provider status and switching
|
|
359
378
|
managers/brew.py Interactive Homebrew manager
|
|
360
379
|
managers/merge.py paths.txt to path_merge_files.txt merger
|
|
@@ -373,7 +392,10 @@ The installed Python layout is top-level modules plus the `core` and `managers`
|
|
|
373
392
|
- `fdev cleanup` applies `dart fix`, formats the project, and runs a major-version dependency upgrade.
|
|
374
393
|
- `fdev clear-data` clears app data on Android after confirmation.
|
|
375
394
|
- `fdev uninstall` may fall back to foreground app detection outside a Flutter project root.
|
|
376
|
-
- `fdev`
|
|
395
|
+
- `fdev upgrade` and `fdev delete` manage the local `flutter-dev` Python package, not the Flutter app on a device.
|
|
396
|
+
- `fdev delete` removes the `fdev` command from the current Python environment after confirmation; reinstall with `python -m pip install flutter-dev`.
|
|
397
|
+
- `fdev` with no command opens the desktop dashboard. Use `fdev help` to print command usage.
|
|
398
|
+
- Most command subcommands create build output directories at startup in the current working directory.
|
|
377
399
|
- Some subcommands return failure internally without always mapping that failure to a non-zero process exit code, so automation should inspect command output carefully.
|
|
378
400
|
|
|
379
401
|
## Troubleshooting
|
|
@@ -400,6 +422,17 @@ On Windows, use:
|
|
|
400
422
|
where fdev
|
|
401
423
|
```
|
|
402
424
|
|
|
425
|
+
### Upgrade Or Remove fdev
|
|
426
|
+
|
|
427
|
+
Use the built-in package management commands from the Python environment where `fdev` is installed:
|
|
428
|
+
|
|
429
|
+
```bash
|
|
430
|
+
fdev upgrade
|
|
431
|
+
fdev delete
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
Both commands print the detected OS and exact Python executable before running. They use that executable with `-m pip`, not a hardcoded `python`, `python3`, `pip`, or `pip3`, so the active venv/global Python that launched `fdev` is the environment that gets upgraded or deleted. On Windows, `fdev delete` and `fdev upgrade` schedule the same `sys.executable -m pip ...` operation in a delayed command process so the currently running console launcher can exit first.
|
|
435
|
+
|
|
403
436
|
### Flutter Project Not Detected
|
|
404
437
|
|
|
405
438
|
Run project-specific commands from the directory that contains `pubspec.yaml`.
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
The package is published on PyPI as `flutter-dev` and installs console commands for day-to-day Flutter work:
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
pip install flutter-dev
|
|
8
|
+
python -m pip install flutter-dev
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
Current package metadata declares version `0.1.
|
|
11
|
+
Current package metadata declares version `0.1.6`, Python `>=3.8`, MIT license, and support for macOS, Linux, and Windows.
|
|
12
12
|
|
|
13
13
|
## Key Features
|
|
14
14
|
|
|
@@ -19,8 +19,9 @@ Current package metadata declares version `0.1.4`, Python `>=3.8`, MIT license,
|
|
|
19
19
|
- AI-assisted Git commits using Groq, Mistral, SambaNova, or OpenRouter-compatible chat completion APIs.
|
|
20
20
|
- Git workflow helpers for version tags, branch sync, deployment branch merge, discard, and GitHub account management through `gh`.
|
|
21
21
|
- Feature/page generator that creates a `lib/features/<name>` structure using the project's presenter/base-state pattern.
|
|
22
|
+
- Small Tkinter desktop dashboard opened by running `fdev` with no command, with live colored command logs.
|
|
22
23
|
- Environment diagnostics through `fdev doctor`.
|
|
23
|
-
- Small utilities for Homebrew cleanup, file merging from `paths.txt`, AI provider switching, and git diff prompt export.
|
|
24
|
+
- Small utilities for Homebrew cleanup, file merging from `paths.txt`, AI provider switching, PyPI self-upgrade/delete, and git diff prompt export.
|
|
24
25
|
|
|
25
26
|
## Installation
|
|
26
27
|
|
|
@@ -36,7 +37,9 @@ Verify the CLI is available:
|
|
|
36
37
|
fdev doctor
|
|
37
38
|
```
|
|
38
39
|
|
|
39
|
-
`pip install flutter-dev` installs the Python package, Python dependencies, and console scripts
|
|
40
|
+
`python -m pip install flutter-dev` installs the Python package, Python dependencies, and console scripts into the Python environment selected by `python`. It does not install Flutter, Dart, Git, Android SDK tools, CocoaPods, Firebase CLI, GitHub CLI, `scrcpy`, Java/JDK, or VS Code CLI.
|
|
41
|
+
|
|
42
|
+
The desktop dashboard uses Python Tkinter. Some Python distributions install this separately; for Homebrew Python, install the matching package such as `brew install python-tk@3.14`.
|
|
40
43
|
|
|
41
44
|
### Install From Source
|
|
42
45
|
|
|
@@ -85,12 +88,22 @@ Feature-specific external tools:
|
|
|
85
88
|
| GitHub CLI / `gh` | `fdev git ...` |
|
|
86
89
|
| VS Code CLI / `code` | Conflict helper in branch sync |
|
|
87
90
|
| Homebrew | `brew`, macOS `install-scrcpy` flow |
|
|
91
|
+
| Python Tkinter | Desktop dashboard opened by `fdev` |
|
|
88
92
|
|
|
89
93
|
## Quick Start
|
|
90
94
|
|
|
91
95
|
Run commands from the root of a Flutter project when they need `pubspec.yaml`, Android Gradle files, iOS files, or build outputs.
|
|
92
96
|
|
|
93
97
|
```bash
|
|
98
|
+
# Open the desktop dashboard
|
|
99
|
+
fdev
|
|
100
|
+
|
|
101
|
+
# Show command help
|
|
102
|
+
fdev help
|
|
103
|
+
|
|
104
|
+
# Upgrade the fdev CLI from PyPI
|
|
105
|
+
fdev upgrade
|
|
106
|
+
|
|
94
107
|
# Check environment and optional tools
|
|
95
108
|
fdev doctor
|
|
96
109
|
|
|
@@ -192,7 +205,11 @@ Switching GitHub accounts runs `gh auth switch` and `gh auth setup-git`, but it
|
|
|
192
205
|
|
|
193
206
|
| Command | Description |
|
|
194
207
|
| --- | --- |
|
|
208
|
+
| `fdev` | Opens a small Tkinter desktop dashboard for running `fdev` commands with live colored logs and command input. The terminal process stays running while the window is open. |
|
|
209
|
+
| `fdev help` | Shows command help without opening the dashboard. |
|
|
195
210
|
| `fdev doctor` | Checks platform, Python, Flutter/Dart/Git, Python packages, Android/iOS tools, optional CLIs, `.env`, Flutter project detection, and global `fdev` availability. |
|
|
211
|
+
| `fdev upgrade` | Detects the OS, then upgrades the active Python environment's `flutter-dev` package from PyPI with `python -m pip install --upgrade flutter-dev`. |
|
|
212
|
+
| `fdev delete` | Detects the OS, asks for confirmation, then uninstalls the active Python environment's `flutter-dev` package. Use `fdev delete --yes` to skip confirmation. |
|
|
196
213
|
| `fdev ai` | Shows the current AI provider and opens an interactive provider switch prompt. |
|
|
197
214
|
| `fdev ai <provider>` | Switches `DEFAULT_AI_SERVICE` to `groq`, `mistral`, `sambanova`, or `openrouter`. |
|
|
198
215
|
| `fdev brew` | Interactive Homebrew package manager for viewing packages, uninstalling with cleanup, clearing cache, and global cleanup. |
|
|
@@ -322,6 +339,7 @@ managers/mirror.py scrcpy install, mirror, wireless ADB setup
|
|
|
322
339
|
managers/git.py commit, tag, discard, branch sync, deployment merge
|
|
323
340
|
managers/git_account.py GitHub account manager around gh CLI
|
|
324
341
|
managers/doctor.py Environment diagnostics
|
|
342
|
+
managers/package.py PyPI self-upgrade and local uninstall commands
|
|
325
343
|
managers/ai.py AI provider status and switching
|
|
326
344
|
managers/brew.py Interactive Homebrew manager
|
|
327
345
|
managers/merge.py paths.txt to path_merge_files.txt merger
|
|
@@ -340,7 +358,10 @@ The installed Python layout is top-level modules plus the `core` and `managers`
|
|
|
340
358
|
- `fdev cleanup` applies `dart fix`, formats the project, and runs a major-version dependency upgrade.
|
|
341
359
|
- `fdev clear-data` clears app data on Android after confirmation.
|
|
342
360
|
- `fdev uninstall` may fall back to foreground app detection outside a Flutter project root.
|
|
343
|
-
- `fdev`
|
|
361
|
+
- `fdev upgrade` and `fdev delete` manage the local `flutter-dev` Python package, not the Flutter app on a device.
|
|
362
|
+
- `fdev delete` removes the `fdev` command from the current Python environment after confirmation; reinstall with `python -m pip install flutter-dev`.
|
|
363
|
+
- `fdev` with no command opens the desktop dashboard. Use `fdev help` to print command usage.
|
|
364
|
+
- Most command subcommands create build output directories at startup in the current working directory.
|
|
344
365
|
- Some subcommands return failure internally without always mapping that failure to a non-zero process exit code, so automation should inspect command output carefully.
|
|
345
366
|
|
|
346
367
|
## Troubleshooting
|
|
@@ -367,6 +388,17 @@ On Windows, use:
|
|
|
367
388
|
where fdev
|
|
368
389
|
```
|
|
369
390
|
|
|
391
|
+
### Upgrade Or Remove fdev
|
|
392
|
+
|
|
393
|
+
Use the built-in package management commands from the Python environment where `fdev` is installed:
|
|
394
|
+
|
|
395
|
+
```bash
|
|
396
|
+
fdev upgrade
|
|
397
|
+
fdev delete
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
Both commands print the detected OS and exact Python executable before running. They use that executable with `-m pip`, not a hardcoded `python`, `python3`, `pip`, or `pip3`, so the active venv/global Python that launched `fdev` is the environment that gets upgraded or deleted. On Windows, `fdev delete` and `fdev upgrade` schedule the same `sys.executable -m pip ...` operation in a delayed command process so the currently running console launcher can exit first.
|
|
401
|
+
|
|
370
402
|
### Flutter Project Not Detected
|
|
371
403
|
|
|
372
404
|
Run project-specific commands from the directory that contains `pubspec.yaml`.
|
|
@@ -70,11 +70,19 @@ from managers.brew import (
|
|
|
70
70
|
from managers.git_account import (
|
|
71
71
|
git_account_manager,
|
|
72
72
|
)
|
|
73
|
+
from managers.gui import (
|
|
74
|
+
launch_gui,
|
|
75
|
+
)
|
|
76
|
+
from managers.package import (
|
|
77
|
+
delete_fdev_command,
|
|
78
|
+
upgrade_fdev_command,
|
|
79
|
+
)
|
|
73
80
|
|
|
74
81
|
|
|
75
|
-
def show_usage():
|
|
82
|
+
def show_usage(exit_code=1):
|
|
76
83
|
"""Show usage information"""
|
|
77
84
|
print(f"{YELLOW}Usage: {sys.argv[0]} [command] [options]{NC}")
|
|
85
|
+
print(f"{BLUE}Run {GREEN}fdev{NC}{BLUE} without a command to open the desktop dashboard.{NC}")
|
|
78
86
|
print(f"\n{BLUE}Build Commands:{NC}")
|
|
79
87
|
print(" apk Build release APK (Full Process)")
|
|
80
88
|
print(" apk-split Build APK with --split-per-abi")
|
|
@@ -114,6 +122,9 @@ def show_usage():
|
|
|
114
122
|
print(f"\n{BLUE}Utility Commands:{NC}")
|
|
115
123
|
print(" doctor Check environment health (tools, deps, config)")
|
|
116
124
|
print(" brew Interactive Homebrew package manager")
|
|
125
|
+
print(" upgrade Upgrade fdev from PyPI")
|
|
126
|
+
print(" delete Uninstall fdev from this computer")
|
|
127
|
+
print(" help Show this help")
|
|
117
128
|
print(" merge Merge files from paths.txt into single output file")
|
|
118
129
|
print(" ai Show current AI service or switch to another")
|
|
119
130
|
print(" Usage: fdev ai [groq|mistral|sambanova|openrouter]")
|
|
@@ -137,10 +148,13 @@ def show_usage():
|
|
|
137
148
|
print(f" {GREEN}fdev git config{NC} # Update git user.name / user.email")
|
|
138
149
|
print(f" {GREEN}fdev arb-to-csv{NC} # Export lib/l10n ARB files to translations.csv")
|
|
139
150
|
print(f" {GREEN}fdev csv-to-arb{NC} # Generate lib/l10n ARB files from translations.csv")
|
|
151
|
+
print(f" {GREEN}fdev upgrade{NC} # Upgrade flutter-dev from PyPI")
|
|
152
|
+
print(f" {GREEN}fdev delete{NC} # Remove flutter-dev/fdev from this computer")
|
|
153
|
+
print(f" {GREEN}fdev{NC} # Open small desktop dashboard")
|
|
140
154
|
|
|
141
155
|
print(f"\n{BLUE}Note:{NC}")
|
|
142
156
|
print(f" {YELLOW}Multiple devices detected?{NC} Tool will prompt you to select one.")
|
|
143
|
-
|
|
157
|
+
return exit_code
|
|
144
158
|
|
|
145
159
|
|
|
146
160
|
def main():
|
|
@@ -151,10 +165,13 @@ def main():
|
|
|
151
165
|
os.makedirs("build/ios/ipa", exist_ok=True)
|
|
152
166
|
|
|
153
167
|
if len(sys.argv) < 2:
|
|
154
|
-
|
|
168
|
+
return launch_gui()
|
|
155
169
|
|
|
156
170
|
command = sys.argv[1].lower()
|
|
157
171
|
|
|
172
|
+
if command in ("help", "--help", "-h"):
|
|
173
|
+
return show_usage(exit_code=0)
|
|
174
|
+
|
|
158
175
|
# Build commands
|
|
159
176
|
if command == "apk":
|
|
160
177
|
build_apk()
|
|
@@ -250,6 +267,12 @@ def main():
|
|
|
250
267
|
elif command == "brew":
|
|
251
268
|
brew_manager()
|
|
252
269
|
|
|
270
|
+
# Package self-management commands
|
|
271
|
+
elif command == "upgrade":
|
|
272
|
+
sys.exit(upgrade_fdev_command(sys.argv[2:]))
|
|
273
|
+
elif command == "delete":
|
|
274
|
+
sys.exit(delete_fdev_command(sys.argv[2:]))
|
|
275
|
+
|
|
253
276
|
# AI command
|
|
254
277
|
elif command == "ai":
|
|
255
278
|
if len(sys.argv) < 3:
|
|
@@ -262,7 +285,7 @@ def main():
|
|
|
262
285
|
git_account_manager(sys.argv[2:])
|
|
263
286
|
|
|
264
287
|
else:
|
|
265
|
-
show_usage()
|
|
288
|
+
sys.exit(show_usage())
|
|
266
289
|
|
|
267
290
|
|
|
268
291
|
if __name__ == "__main__":
|
|
@@ -272,4 +295,4 @@ if __name__ == "__main__":
|
|
|
272
295
|
sys.exit(0)
|
|
273
296
|
|
|
274
297
|
signal.signal(signal.SIGINT, signal_handler)
|
|
275
|
-
main()
|
|
298
|
+
sys.exit(main())
|
|
@@ -26,9 +26,14 @@ managers/device.py
|
|
|
26
26
|
managers/doctor.py
|
|
27
27
|
managers/git.py
|
|
28
28
|
managers/git_account.py
|
|
29
|
+
managers/gui.py
|
|
29
30
|
managers/localization.py
|
|
30
31
|
managers/merge.py
|
|
31
32
|
managers/mirror.py
|
|
33
|
+
managers/package.py
|
|
32
34
|
managers/project.py
|
|
33
35
|
managers/web_deploy.py
|
|
34
|
-
tests/
|
|
36
|
+
tests/test_fdev_cli.py
|
|
37
|
+
tests/test_gui.py
|
|
38
|
+
tests/test_localization.py
|
|
39
|
+
tests/test_package_commands.py
|