-
-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add --only
option to sharezone cli.
#1292
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -15,6 +15,11 @@ import 'package:sz_repo_cli/src/common/common.dart'; | |||||||||||||||||||||||||||||
abstract class ConcurrentCommand extends CommandBase { | ||||||||||||||||||||||||||||||
ConcurrentCommand(super.context) { | ||||||||||||||||||||||||||||||
argParser | ||||||||||||||||||||||||||||||
..addOption( | ||||||||||||||||||||||||||||||
'only', | ||||||||||||||||||||||||||||||
help: | ||||||||||||||||||||||||||||||
'Only run the task for the given package(s). Package names can be separated by comma. E.g. `--only package1` or `--only=package1,package2`.', | ||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||
..addConcurrencyOption(defaultMaxConcurrency: defaultMaxConcurrency) | ||||||||||||||||||||||||||||||
..addPackageTimeoutOption( | ||||||||||||||||||||||||||||||
defaultInMinutes: defaultPackageTimeout.inMinutes); | ||||||||||||||||||||||||||||||
|
@@ -54,7 +59,25 @@ abstract class ConcurrentCommand extends CommandBase { | |||||||||||||||||||||||||||||
/// | ||||||||||||||||||||||||||||||
/// Can be overridden to e.g. add a filter (`.where((package) => | ||||||||||||||||||||||||||||||
/// package.hasTestDirectory`). | ||||||||||||||||||||||||||||||
Stream<Package> get packagesToProcess => repo.streamPackages(); | ||||||||||||||||||||||||||||||
Stream<Package> get packagesToProcess { | ||||||||||||||||||||||||||||||
var stream = repo.streamPackages(); | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
final onlyPackageNames = _parseOnlyArg(); | ||||||||||||||||||||||||||||||
if (onlyPackageNames.isNotEmpty) { | ||||||||||||||||||||||||||||||
stream = | ||||||||||||||||||||||||||||||
stream.where((package) => onlyPackageNames.contains(package.name)); | ||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
return stream; | ||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||
Comment on lines
+62
to
+72
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The implementation of filtering packages based on the |
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
List<String> _parseOnlyArg() { | ||||||||||||||||||||||||||||||
final onlyArg = argResults!['only'] as String?; | ||||||||||||||||||||||||||||||
if (onlyArg == null) { | ||||||||||||||||||||||||||||||
return []; | ||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||
return onlyArg.split(','); | ||||||||||||||||||||||||||||||
} | ||||||||||||||||||||||||||||||
Comment on lines
+74
to
+80
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The - return onlyArg.split(',');
+ return onlyArg.split(',').map((name) => name.trim()).toList(); Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||
@override | ||||||||||||||||||||||||||||||
Future<void> run() async { | ||||||||||||||||||||||||||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ensure the description for the
--only
option is clear and concise. Consider mentioning the expected behavior when no package names are provided.