flutter-dev 0.1.2__tar.gz → 0.1.5__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.5/CHANGELOG.md +68 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/PKG-INFO +27 -3
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/README.md +25 -2
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/fdev.py +26 -5
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/flutter_dev.egg-info/SOURCES.txt +6 -1
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/managers/build.py +1 -1
- flutter_dev-0.1.5/managers/gui.py +531 -0
- flutter_dev-0.1.5/managers/localization.py +293 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/pyproject.toml +3 -2
- flutter_dev-0.1.5/tests/test_fdev_cli.py +43 -0
- flutter_dev-0.1.5/tests/test_gui.py +145 -0
- flutter_dev-0.1.5/tests/test_localization.py +93 -0
- flutter_dev-0.1.2/CHANGELOG.md +0 -36
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/.env.example +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/LICENSE +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/MANIFEST.in +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/common_utils.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/core/__init__.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/core/constants.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/core/state.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/create_page.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/gemini_api.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/git_diff_output_editor.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/install_legacy.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/managers/__init__.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/managers/ai.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/managers/app.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/managers/brew.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/managers/datetime.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/managers/device.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/managers/doctor.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/managers/git.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/managers/git_account.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/managers/merge.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/managers/mirror.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/managers/project.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/managers/web_deploy.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/requirements.txt +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/setup.cfg +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/setup.py +0 -0
- {flutter_dev-0.1.2 → flutter_dev-0.1.5}/switch_ai.py +0 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project are documented in this file.
|
|
4
|
+
|
|
5
|
+
## 0.1.5 - 2026-06-24
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- Added a Tkinter desktop dashboard that opens by running `fdev` with no command.
|
|
10
|
+
- Added GUI live log output with ANSI terminal color rendering.
|
|
11
|
+
- Added GUI buttons for all documented command groups, including mirror variants, AI provider shortcuts, and GitHub account subcommands.
|
|
12
|
+
- Added Python coverage for GUI command catalog, ANSI color parsing, and no-command CLI dispatch.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- Kept command help available through `fdev help`, `fdev --help`, and `fdev -h`.
|
|
17
|
+
- Documented Tkinter requirements for the desktop dashboard.
|
|
18
|
+
|
|
19
|
+
## 0.1.4 - 2026-06-15
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
|
|
23
|
+
- Added `fdev arb-to-csv` to export Flutter ARB localization files from `lib/l10n` into `translations.csv` by default.
|
|
24
|
+
- Added `fdev csv-to-arb` to generate `app_<locale>.arb` files into `lib/l10n` from `translations.csv` by default.
|
|
25
|
+
- Added Python regression coverage for ARB/CSV conversion, locale parsing, default paths, and ARB metadata preservation.
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
|
|
29
|
+
- Documented the ARB/CSV localization workflow in the README command reference and quick-start examples.
|
|
30
|
+
|
|
31
|
+
## 0.1.3 - 2026-06-08
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
|
|
35
|
+
- Fixed CocoaPods command execution for `fdev pod` and `fdev ipa` so pod subcommands keep their arguments on macOS and Linux.
|
|
36
|
+
|
|
37
|
+
## 0.1.2 - 2026-06-07
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
|
|
41
|
+
- Bumped package version to 0.1.2.
|
|
42
|
+
|
|
43
|
+
## 0.1.1 - 2026-05-19
|
|
44
|
+
|
|
45
|
+
### Added
|
|
46
|
+
|
|
47
|
+
- Added `fdev install-scrcpy` for platform-specific scrcpy installation.
|
|
48
|
+
- Added prompt-based scrcpy installation when `fdev mirror` cannot find `scrcpy`.
|
|
49
|
+
- Added PyPI Trusted Publishing workflow and package metadata.
|
|
50
|
+
- Added `CHANGELOG.md` release history.
|
|
51
|
+
|
|
52
|
+
### Changed
|
|
53
|
+
|
|
54
|
+
- Updated `fdev doctor` to suggest `fdev install-scrcpy` when scrcpy is missing.
|
|
55
|
+
- Updated package author and license branding to Royal Court BD.
|
|
56
|
+
- Updated package repository URLs to `royalcourtbd/flutter-development-tools`.
|
|
57
|
+
|
|
58
|
+
### Fixed
|
|
59
|
+
|
|
60
|
+
- Prevented private `.env` files from being included in package artifacts.
|
|
61
|
+
- Made PyPI console scripts safer by removing import-time side effects.
|
|
62
|
+
|
|
63
|
+
## 0.1.0 - 2026-05-18
|
|
64
|
+
|
|
65
|
+
### Added
|
|
66
|
+
|
|
67
|
+
- Initial public PyPI package setup for Flutter Development Tools.
|
|
68
|
+
- Added console scripts for `fdev`, `create-page`, `gemini-api`, and `git-diff-editor`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flutter-dev
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.5
|
|
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
|
|
@@ -41,16 +42,18 @@ The package is published on PyPI as `flutter-dev` and installs console commands
|
|
|
41
42
|
pip install flutter-dev
|
|
42
43
|
```
|
|
43
44
|
|
|
44
|
-
Current package metadata declares version `0.1.
|
|
45
|
+
Current package metadata declares version `0.1.5`, Python `>=3.8`, MIT license, and support for macOS, Linux, and Windows.
|
|
45
46
|
|
|
46
47
|
## Key Features
|
|
47
48
|
|
|
48
49
|
- Flutter build automation for APK, split APK, AAB, IPA, release install, and Firebase web deploy.
|
|
49
50
|
- Project maintenance helpers for `flutter clean`, dependency refresh, `build_runner`, localization generation, analysis, formatting, cache repair, and CocoaPods.
|
|
51
|
+
- Localization CSV helpers for exporting ARB files to translator-friendly CSV files and generating ARB files back from CSV.
|
|
50
52
|
- Android device helpers for APK install, app uninstall, foreground app data clearing, screen mirroring with `scrcpy`, wireless ADB setup, and Date & Time settings.
|
|
51
53
|
- AI-assisted Git commits using Groq, Mistral, SambaNova, or OpenRouter-compatible chat completion APIs.
|
|
52
54
|
- Git workflow helpers for version tags, branch sync, deployment branch merge, discard, and GitHub account management through `gh`.
|
|
53
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.
|
|
54
57
|
- Environment diagnostics through `fdev doctor`.
|
|
55
58
|
- Small utilities for Homebrew cleanup, file merging from `paths.txt`, AI provider switching, and git diff prompt export.
|
|
56
59
|
|
|
@@ -70,6 +73,8 @@ fdev doctor
|
|
|
70
73
|
|
|
71
74
|
`pip install flutter-dev` installs the Python package, Python dependencies, and console scripts. It does not install Flutter, Dart, Git, Android SDK tools, CocoaPods, Firebase CLI, GitHub CLI, `scrcpy`, Java/JDK, or VS Code CLI.
|
|
72
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`.
|
|
77
|
+
|
|
73
78
|
### Install From Source
|
|
74
79
|
|
|
75
80
|
```bash
|
|
@@ -117,18 +122,31 @@ Feature-specific external tools:
|
|
|
117
122
|
| GitHub CLI / `gh` | `fdev git ...` |
|
|
118
123
|
| VS Code CLI / `code` | Conflict helper in branch sync |
|
|
119
124
|
| Homebrew | `brew`, macOS `install-scrcpy` flow |
|
|
125
|
+
| Python Tkinter | Desktop dashboard opened by `fdev` |
|
|
120
126
|
|
|
121
127
|
## Quick Start
|
|
122
128
|
|
|
123
129
|
Run commands from the root of a Flutter project when they need `pubspec.yaml`, Android Gradle files, iOS files, or build outputs.
|
|
124
130
|
|
|
125
131
|
```bash
|
|
132
|
+
# Open the desktop dashboard
|
|
133
|
+
fdev
|
|
134
|
+
|
|
135
|
+
# Show command help
|
|
136
|
+
fdev help
|
|
137
|
+
|
|
126
138
|
# Check environment and optional tools
|
|
127
139
|
fdev doctor
|
|
128
140
|
|
|
129
141
|
# Generate localization files
|
|
130
142
|
fdev lang
|
|
131
143
|
|
|
144
|
+
# Export ARB translations from lib/l10n to translations.csv
|
|
145
|
+
fdev arb-to-csv
|
|
146
|
+
|
|
147
|
+
# Generate ARB files in lib/l10n from translations.csv
|
|
148
|
+
fdev csv-to-arb
|
|
149
|
+
|
|
132
150
|
# Run build_runner
|
|
133
151
|
fdev db
|
|
134
152
|
|
|
@@ -167,6 +185,8 @@ Android APK/AAB build commands rename output files using the Android app label a
|
|
|
167
185
|
| `fdev setup` | Runs clean, dependency upgrade, `build_runner`, localization generation, another dependency upgrade, `flutter analyze`, and `dart format .`. |
|
|
168
186
|
| `fdev cleanup` | Runs clean, pub get, `dart fix --apply`, `dart format .`, and `flutter pub upgrade --major-versions`. |
|
|
169
187
|
| `fdev lang` | Runs `flutter gen-l10n`. |
|
|
188
|
+
| `fdev arb-to-csv` | Exports `lib/l10n/*.arb` into `translations.csv` by default. Use `-d/--directory` and `-o/--output` to override paths. |
|
|
189
|
+
| `fdev csv-to-arb` | Generates `app_<locale>.arb` files into `lib/l10n` from `translations.csv` by default. Use `-i/--input` and `-o/--output-dir` to override paths. |
|
|
170
190
|
| `fdev db` | Runs `dart run build_runner build --delete-conflicting-outputs`. |
|
|
171
191
|
| `fdev cache-repair` | Runs `flutter pub cache repair`. |
|
|
172
192
|
| `fdev pod` | Updates CocoaPods from the `ios/` directory after removing `Podfile.lock` when present. |
|
|
@@ -216,6 +236,8 @@ Switching GitHub accounts runs `gh auth switch` and `gh auth setup-git`, but it
|
|
|
216
236
|
|
|
217
237
|
| Command | Description |
|
|
218
238
|
| --- | --- |
|
|
239
|
+
| `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. |
|
|
240
|
+
| `fdev help` | Shows command help without opening the dashboard. |
|
|
219
241
|
| `fdev doctor` | Checks platform, Python, Flutter/Dart/Git, Python packages, Android/iOS tools, optional CLIs, `.env`, Flutter project detection, and global `fdev` availability. |
|
|
220
242
|
| `fdev ai` | Shows the current AI provider and opens an interactive provider switch prompt. |
|
|
221
243
|
| `fdev ai <provider>` | Switches `DEFAULT_AI_SERVICE` to `groq`, `mistral`, `sambanova`, or `openrouter`. |
|
|
@@ -364,7 +386,8 @@ The installed Python layout is top-level modules plus the `core` and `managers`
|
|
|
364
386
|
- `fdev cleanup` applies `dart fix`, formats the project, and runs a major-version dependency upgrade.
|
|
365
387
|
- `fdev clear-data` clears app data on Android after confirmation.
|
|
366
388
|
- `fdev uninstall` may fall back to foreground app detection outside a Flutter project root.
|
|
367
|
-
- `fdev`
|
|
389
|
+
- `fdev` with no command opens the desktop dashboard. Use `fdev help` to print command usage.
|
|
390
|
+
- Most command subcommands create build output directories at startup in the current working directory.
|
|
368
391
|
- Some subcommands return failure internally without always mapping that failure to a non-zero process exit code, so automation should inspect command output carefully.
|
|
369
392
|
|
|
370
393
|
## Troubleshooting
|
|
@@ -450,6 +473,7 @@ For local packaging checks:
|
|
|
450
473
|
|
|
451
474
|
```bash
|
|
452
475
|
python -m pip install --upgrade build twine
|
|
476
|
+
rm -rf dist build flutter_dev.egg-info
|
|
453
477
|
python -m build
|
|
454
478
|
python -m twine check dist/*
|
|
455
479
|
```
|
|
@@ -8,16 +8,18 @@ The package is published on PyPI as `flutter-dev` and installs console commands
|
|
|
8
8
|
pip install flutter-dev
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
Current package metadata declares version `0.1.
|
|
11
|
+
Current package metadata declares version `0.1.5`, Python `>=3.8`, MIT license, and support for macOS, Linux, and Windows.
|
|
12
12
|
|
|
13
13
|
## Key Features
|
|
14
14
|
|
|
15
15
|
- Flutter build automation for APK, split APK, AAB, IPA, release install, and Firebase web deploy.
|
|
16
16
|
- Project maintenance helpers for `flutter clean`, dependency refresh, `build_runner`, localization generation, analysis, formatting, cache repair, and CocoaPods.
|
|
17
|
+
- Localization CSV helpers for exporting ARB files to translator-friendly CSV files and generating ARB files back from CSV.
|
|
17
18
|
- Android device helpers for APK install, app uninstall, foreground app data clearing, screen mirroring with `scrcpy`, wireless ADB setup, and Date & Time settings.
|
|
18
19
|
- AI-assisted Git commits using Groq, Mistral, SambaNova, or OpenRouter-compatible chat completion APIs.
|
|
19
20
|
- Git workflow helpers for version tags, branch sync, deployment branch merge, discard, and GitHub account management through `gh`.
|
|
20
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.
|
|
21
23
|
- Environment diagnostics through `fdev doctor`.
|
|
22
24
|
- Small utilities for Homebrew cleanup, file merging from `paths.txt`, AI provider switching, and git diff prompt export.
|
|
23
25
|
|
|
@@ -37,6 +39,8 @@ fdev doctor
|
|
|
37
39
|
|
|
38
40
|
`pip install flutter-dev` installs the Python package, Python dependencies, and console scripts. It does not install Flutter, Dart, Git, Android SDK tools, CocoaPods, Firebase CLI, GitHub CLI, `scrcpy`, Java/JDK, or VS Code CLI.
|
|
39
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`.
|
|
43
|
+
|
|
40
44
|
### Install From Source
|
|
41
45
|
|
|
42
46
|
```bash
|
|
@@ -84,18 +88,31 @@ Feature-specific external tools:
|
|
|
84
88
|
| GitHub CLI / `gh` | `fdev git ...` |
|
|
85
89
|
| VS Code CLI / `code` | Conflict helper in branch sync |
|
|
86
90
|
| Homebrew | `brew`, macOS `install-scrcpy` flow |
|
|
91
|
+
| Python Tkinter | Desktop dashboard opened by `fdev` |
|
|
87
92
|
|
|
88
93
|
## Quick Start
|
|
89
94
|
|
|
90
95
|
Run commands from the root of a Flutter project when they need `pubspec.yaml`, Android Gradle files, iOS files, or build outputs.
|
|
91
96
|
|
|
92
97
|
```bash
|
|
98
|
+
# Open the desktop dashboard
|
|
99
|
+
fdev
|
|
100
|
+
|
|
101
|
+
# Show command help
|
|
102
|
+
fdev help
|
|
103
|
+
|
|
93
104
|
# Check environment and optional tools
|
|
94
105
|
fdev doctor
|
|
95
106
|
|
|
96
107
|
# Generate localization files
|
|
97
108
|
fdev lang
|
|
98
109
|
|
|
110
|
+
# Export ARB translations from lib/l10n to translations.csv
|
|
111
|
+
fdev arb-to-csv
|
|
112
|
+
|
|
113
|
+
# Generate ARB files in lib/l10n from translations.csv
|
|
114
|
+
fdev csv-to-arb
|
|
115
|
+
|
|
99
116
|
# Run build_runner
|
|
100
117
|
fdev db
|
|
101
118
|
|
|
@@ -134,6 +151,8 @@ Android APK/AAB build commands rename output files using the Android app label a
|
|
|
134
151
|
| `fdev setup` | Runs clean, dependency upgrade, `build_runner`, localization generation, another dependency upgrade, `flutter analyze`, and `dart format .`. |
|
|
135
152
|
| `fdev cleanup` | Runs clean, pub get, `dart fix --apply`, `dart format .`, and `flutter pub upgrade --major-versions`. |
|
|
136
153
|
| `fdev lang` | Runs `flutter gen-l10n`. |
|
|
154
|
+
| `fdev arb-to-csv` | Exports `lib/l10n/*.arb` into `translations.csv` by default. Use `-d/--directory` and `-o/--output` to override paths. |
|
|
155
|
+
| `fdev csv-to-arb` | Generates `app_<locale>.arb` files into `lib/l10n` from `translations.csv` by default. Use `-i/--input` and `-o/--output-dir` to override paths. |
|
|
137
156
|
| `fdev db` | Runs `dart run build_runner build --delete-conflicting-outputs`. |
|
|
138
157
|
| `fdev cache-repair` | Runs `flutter pub cache repair`. |
|
|
139
158
|
| `fdev pod` | Updates CocoaPods from the `ios/` directory after removing `Podfile.lock` when present. |
|
|
@@ -183,6 +202,8 @@ Switching GitHub accounts runs `gh auth switch` and `gh auth setup-git`, but it
|
|
|
183
202
|
|
|
184
203
|
| Command | Description |
|
|
185
204
|
| --- | --- |
|
|
205
|
+
| `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. |
|
|
206
|
+
| `fdev help` | Shows command help without opening the dashboard. |
|
|
186
207
|
| `fdev doctor` | Checks platform, Python, Flutter/Dart/Git, Python packages, Android/iOS tools, optional CLIs, `.env`, Flutter project detection, and global `fdev` availability. |
|
|
187
208
|
| `fdev ai` | Shows the current AI provider and opens an interactive provider switch prompt. |
|
|
188
209
|
| `fdev ai <provider>` | Switches `DEFAULT_AI_SERVICE` to `groq`, `mistral`, `sambanova`, or `openrouter`. |
|
|
@@ -331,7 +352,8 @@ The installed Python layout is top-level modules plus the `core` and `managers`
|
|
|
331
352
|
- `fdev cleanup` applies `dart fix`, formats the project, and runs a major-version dependency upgrade.
|
|
332
353
|
- `fdev clear-data` clears app data on Android after confirmation.
|
|
333
354
|
- `fdev uninstall` may fall back to foreground app detection outside a Flutter project root.
|
|
334
|
-
- `fdev`
|
|
355
|
+
- `fdev` with no command opens the desktop dashboard. Use `fdev help` to print command usage.
|
|
356
|
+
- Most command subcommands create build output directories at startup in the current working directory.
|
|
335
357
|
- Some subcommands return failure internally without always mapping that failure to a non-zero process exit code, so automation should inspect command output carefully.
|
|
336
358
|
|
|
337
359
|
## Troubleshooting
|
|
@@ -417,6 +439,7 @@ For local packaging checks:
|
|
|
417
439
|
|
|
418
440
|
```bash
|
|
419
441
|
python -m pip install --upgrade build twine
|
|
442
|
+
rm -rf dist build flutter_dev.egg-info
|
|
420
443
|
python -m build
|
|
421
444
|
python -m twine check dist/*
|
|
422
445
|
```
|
|
@@ -47,6 +47,10 @@ from managers.mirror import (
|
|
|
47
47
|
from managers.merge import (
|
|
48
48
|
merge_files,
|
|
49
49
|
)
|
|
50
|
+
from managers.localization import (
|
|
51
|
+
arb_to_csv_command,
|
|
52
|
+
csv_to_arb_command,
|
|
53
|
+
)
|
|
50
54
|
from managers.ai import (
|
|
51
55
|
show_ai_status,
|
|
52
56
|
switch_ai_service,
|
|
@@ -66,11 +70,15 @@ from managers.brew import (
|
|
|
66
70
|
from managers.git_account import (
|
|
67
71
|
git_account_manager,
|
|
68
72
|
)
|
|
73
|
+
from managers.gui import (
|
|
74
|
+
launch_gui,
|
|
75
|
+
)
|
|
69
76
|
|
|
70
77
|
|
|
71
|
-
def show_usage():
|
|
78
|
+
def show_usage(exit_code=1):
|
|
72
79
|
"""Show usage information"""
|
|
73
80
|
print(f"{YELLOW}Usage: {sys.argv[0]} [command] [options]{NC}")
|
|
81
|
+
print(f"{BLUE}Run {GREEN}fdev{NC}{BLUE} without a command to open the desktop dashboard.{NC}")
|
|
74
82
|
print(f"\n{BLUE}Build Commands:{NC}")
|
|
75
83
|
print(" apk Build release APK (Full Process)")
|
|
76
84
|
print(" apk-split Build APK with --split-per-abi")
|
|
@@ -86,6 +94,8 @@ def show_usage():
|
|
|
86
94
|
print(" cleanup Clean project and get dependencies")
|
|
87
95
|
print(" cache-repair Repair pub cache")
|
|
88
96
|
print(" page Create page structure (usage: fdev page <page_name>)")
|
|
97
|
+
print(" arb-to-csv Export ARB localization files to CSV")
|
|
98
|
+
print(" csv-to-arb Generate ARB localization files from CSV")
|
|
89
99
|
|
|
90
100
|
print(f"\n{BLUE}Device Commands:{NC}")
|
|
91
101
|
print(" install Install built APK on connected device")
|
|
@@ -108,6 +118,7 @@ def show_usage():
|
|
|
108
118
|
print(f"\n{BLUE}Utility Commands:{NC}")
|
|
109
119
|
print(" doctor Check environment health (tools, deps, config)")
|
|
110
120
|
print(" brew Interactive Homebrew package manager")
|
|
121
|
+
print(" help Show this help")
|
|
111
122
|
print(" merge Merge files from paths.txt into single output file")
|
|
112
123
|
print(" ai Show current AI service or switch to another")
|
|
113
124
|
print(" Usage: fdev ai [groq|mistral|sambanova|openrouter]")
|
|
@@ -129,10 +140,13 @@ def show_usage():
|
|
|
129
140
|
print(f" {GREEN}fdev git{NC} # Interactive GitHub account manager")
|
|
130
141
|
print(f" {GREEN}fdev git switch royalcourtbd{NC} # Switch to a specific GH account")
|
|
131
142
|
print(f" {GREEN}fdev git config{NC} # Update git user.name / user.email")
|
|
143
|
+
print(f" {GREEN}fdev arb-to-csv{NC} # Export lib/l10n ARB files to translations.csv")
|
|
144
|
+
print(f" {GREEN}fdev csv-to-arb{NC} # Generate lib/l10n ARB files from translations.csv")
|
|
145
|
+
print(f" {GREEN}fdev{NC} # Open small desktop dashboard")
|
|
132
146
|
|
|
133
147
|
print(f"\n{BLUE}Note:{NC}")
|
|
134
148
|
print(f" {YELLOW}Multiple devices detected?{NC} Tool will prompt you to select one.")
|
|
135
|
-
|
|
149
|
+
return exit_code
|
|
136
150
|
|
|
137
151
|
|
|
138
152
|
def main():
|
|
@@ -143,10 +157,13 @@ def main():
|
|
|
143
157
|
os.makedirs("build/ios/ipa", exist_ok=True)
|
|
144
158
|
|
|
145
159
|
if len(sys.argv) < 2:
|
|
146
|
-
|
|
160
|
+
return launch_gui()
|
|
147
161
|
|
|
148
162
|
command = sys.argv[1].lower()
|
|
149
163
|
|
|
164
|
+
if command in ("help", "--help", "-h"):
|
|
165
|
+
return show_usage(exit_code=0)
|
|
166
|
+
|
|
150
167
|
# Build commands
|
|
151
168
|
if command == "apk":
|
|
152
169
|
build_apk()
|
|
@@ -172,6 +189,10 @@ def main():
|
|
|
172
189
|
repair_cache()
|
|
173
190
|
elif command == "cleanup":
|
|
174
191
|
cleanup_project()
|
|
192
|
+
elif command == "arb-to-csv":
|
|
193
|
+
sys.exit(arb_to_csv_command(sys.argv[2:]))
|
|
194
|
+
elif command == "csv-to-arb":
|
|
195
|
+
sys.exit(csv_to_arb_command(sys.argv[2:]))
|
|
175
196
|
|
|
176
197
|
# Device commands
|
|
177
198
|
elif command == "install":
|
|
@@ -250,7 +271,7 @@ def main():
|
|
|
250
271
|
git_account_manager(sys.argv[2:])
|
|
251
272
|
|
|
252
273
|
else:
|
|
253
|
-
show_usage()
|
|
274
|
+
sys.exit(show_usage())
|
|
254
275
|
|
|
255
276
|
|
|
256
277
|
if __name__ == "__main__":
|
|
@@ -260,4 +281,4 @@ if __name__ == "__main__":
|
|
|
260
281
|
sys.exit(0)
|
|
261
282
|
|
|
262
283
|
signal.signal(signal.SIGINT, signal_handler)
|
|
263
|
-
main()
|
|
284
|
+
sys.exit(main())
|
|
@@ -26,7 +26,12 @@ managers/device.py
|
|
|
26
26
|
managers/doctor.py
|
|
27
27
|
managers/git.py
|
|
28
28
|
managers/git_account.py
|
|
29
|
+
managers/gui.py
|
|
30
|
+
managers/localization.py
|
|
29
31
|
managers/merge.py
|
|
30
32
|
managers/mirror.py
|
|
31
33
|
managers/project.py
|
|
32
|
-
managers/web_deploy.py
|
|
34
|
+
managers/web_deploy.py
|
|
35
|
+
tests/test_fdev_cli.py
|
|
36
|
+
tests/test_gui.py
|
|
37
|
+
tests/test_localization.py
|
|
@@ -56,7 +56,7 @@ def run_flutter_command(cmd_list, description, env=None):
|
|
|
56
56
|
env: Optional environment variables dict (default: inherits current env)
|
|
57
57
|
"""
|
|
58
58
|
# Windows compatibility for shell commands
|
|
59
|
-
shell_needed =
|
|
59
|
+
shell_needed = is_windows() and cmd_list[0] in ['timeout', 'start', 'flutter', 'dart']
|
|
60
60
|
|
|
61
61
|
process = subprocess.Popen(
|
|
62
62
|
cmd_list,
|