diff --git a/packages/melos/bin/melos.dart b/packages/melos/bin/melos.dart index 74d96ca74..cdc76c6df 100644 --- a/packages/melos/bin/melos.dart +++ b/packages/melos/bin/melos.dart @@ -40,7 +40,9 @@ Future main(List arguments) async { return; } try { - final config = await MelosWorkspaceConfig.fromDirectory(Directory.current); + final config = shouldUseEmptyConfig(arguments) + ? MelosWorkspaceConfig.empty() + : await MelosWorkspaceConfig.fromDirectory(Directory.current); await MelosCommandRunner(config).run(arguments); } on MelosException catch (err) { stderr.writeln(err.toString()); @@ -53,3 +55,10 @@ Future main(List arguments) async { rethrow; } } + +bool shouldUseEmptyConfig(List arguments) { + final willShowHelp = arguments.isEmpty || + arguments.contains('--help') || + arguments.contains('-h'); + return willShowHelp; +} diff --git a/packages/melos/lib/src/workspace_configs.dart b/packages/melos/lib/src/workspace_configs.dart index f41c027a8..43ab56902 100644 --- a/packages/melos/lib/src/workspace_configs.dart +++ b/packages/melos/lib/src/workspace_configs.dart @@ -554,6 +554,14 @@ class MelosWorkspaceConfig { : CommandConfigs.empty, ); + MelosWorkspaceConfig.empty() + : this( + name: 'Melos', + packages: [], + path: Directory.current.path, + commands: CommandConfigs.empty, + ); + static Directory? _searchForAncestorDirectoryWithMelosYaml(Directory from) { for (var testedDirectory = from; testedDirectory.path != testedDirectory.parent.path;