Skip to content

Commit

Permalink
Linting clean up finish
Browse files Browse the repository at this point in the history
  • Loading branch information
leoafarias committed Feb 14, 2024
1 parent 0623dad commit d328a1a
Show file tree
Hide file tree
Showing 23 changed files with 82 additions and 55 deletions.
2 changes: 2 additions & 0 deletions bin/compile.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ Future<void> main() async {

if (os != 'macos' && os != 'linux') {
print('Unsupported OS. Only MacOS and Linux are supported.');

return;
}

Expand All @@ -28,6 +29,7 @@ Future<void> main() async {
// Error checking for compile process
if (compileResult.exitCode != 0) {
print('Error occurred in compilation:\n ${compileResult.stderr}');

return;
}

Expand Down
1 change: 1 addition & 0 deletions lib/src/commands/base_command.dart
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ abstract class BaseCommand extends Command<int> {
}

/// Gets the parsed command-line option named [name] as `List<String>`.
// ignore: prefer-correct-json-casts
List<String?> stringsArg(String name) => argResults![name] as List<String>;
@override
String get invocation => 'fvm $name';
Expand Down
2 changes: 1 addition & 1 deletion lib/src/commands/config_command.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import 'package:io/ansi.dart';
import 'package:io/io.dart';

import '../../fvm.dart';
import '../models/config_model.dart';
import '../services/config_repository.dart';
import '../services/logger_service.dart';
import '../utils/constants.dart';
Expand Down
3 changes: 2 additions & 1 deletion lib/src/commands/dart_command.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import 'package:args/args.dart';

import '../../fvm.dart';
import '../models/cache_flutter_version_model.dart';
import '../services/logger_service.dart';
import '../services/project_service.dart';
import '../utils/commands.dart';
import '../utils/constants.dart';
import '../workflows/ensure_cache.workflow.dart';
Expand Down
14 changes: 9 additions & 5 deletions lib/src/commands/doctor_command.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,10 @@ import 'package:dart_console/dart_console.dart';
import 'package:io/io.dart';
import 'package:path/path.dart';

import '../../fvm.dart';
import '../models/config_model.dart';
import '../models/project_model.dart';
import '../services/logger_service.dart';
import '../services/project_service.dart';
import '../utils/console_utils.dart';
import '../utils/constants.dart';
import '../utils/context.dart';
Expand Down Expand Up @@ -87,14 +89,17 @@ class DoctorCommand extends BaseCommand {
table.insertRow(
['Matches pinned version:', sdkPath == relativeSymlinkPath],
);
} on FormatException {
} on FormatException catch (_, stackTrace) {
logger
..err('Error parsing Vscode settings.json on ${settingsFile.path}')
..err(
'Please use a tool like https://jsonformatter.curiousconcept.com to validate and fix it',
);
throw AppException(
'Could not get vscode settings, please check settings.json',
Error.throwWithStackTrace(
AppException(
'Could not get vscode settings, please check settings.json',
),
stackTrace,
);
}
} else {
Expand Down Expand Up @@ -195,7 +200,6 @@ class DoctorCommand extends BaseCommand {
logger.write(table.toString());
}

void printFVMDetails() {}
@override
Future<int> run() async {
final project = ProjectService.fromContext.findAncestor();
Expand Down
5 changes: 3 additions & 2 deletions lib/src/commands/exec_command.dart
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
import 'package:args/args.dart';
import 'package:args/command_runner.dart';

import '../../fvm.dart';
import '../models/cache_flutter_version_model.dart';
import '../services/logger_service.dart';
import '../services/project_service.dart';
import '../utils/commands.dart';
import '../utils/constants.dart';
import '../workflows/ensure_cache.workflow.dart';
Expand Down Expand Up @@ -31,7 +32,7 @@ class ExecCommand extends BaseCommand {
final cmd = argResults!.rest[0];

// Removes version from first arg
final execArgs = [...argResults!.rest]..removeAt(0);
final execArgs = [...?argResults?.rest]..removeAt(0);

// If no version is provided try to use global
CacheFlutterVersion? cacheVersion;
Expand Down
5 changes: 3 additions & 2 deletions lib/src/commands/flutter_command.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import 'package:args/args.dart';

import '../../fvm.dart';
import '../models/cache_flutter_version_model.dart';
import '../services/logger_service.dart';
import '../services/project_service.dart';
import '../utils/commands.dart';
import '../utils/constants.dart';
import '../utils/exceptions.dart';
Expand All @@ -23,7 +24,7 @@ class FlutterCommand extends BaseCommand {
@override
Future<int> run() async {
final version = ProjectService.fromContext.findVersion();
final args = [...argResults!.arguments];
final args = [...?argResults?.arguments];

CacheFlutterVersion? cacheVersion;

Expand Down
2 changes: 1 addition & 1 deletion lib/src/commands/spawn_command.dart
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class SpawnCommand extends BaseCommand {
final version = argResults!.rest[0];

// Removes version from first arg
final flutterArgs = [...argResults!.rest]..removeAt(0);
final flutterArgs = [...?argResults?.rest]..removeAt(0);

// Will install version if not already instaled
final cacheVersion = await ensureCacheWorkflow(version);
Expand Down
10 changes: 6 additions & 4 deletions lib/src/commands/use_command.dart
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import 'package:args/command_runner.dart';
import '../../fvm.dart';
import '../services/releases_service/releases_client.dart';
import '../utils/helpers.dart';
import '../workflows/ensure_cache.workflow.dart';
import 'package:io/io.dart';

import '../services/cache_service.dart';
import '../services/logger_service.dart';
import '../services/project_service.dart';
import '../services/releases_service/models/channels.model.dart';
import '../services/releases_service/releases_client.dart';
import '../utils/console_utils.dart';
import '../utils/helpers.dart';
import '../workflows/ensure_cache.workflow.dart';
import '../workflows/use_version.workflow.dart';
import 'base_command.dart';

Expand Down
7 changes: 4 additions & 3 deletions lib/src/models/config_model.dart
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ class ConfigKeys {
String get propKey => _recase.camelCase;

@override
operator ==(other) => other is ConfigKeys && other.key == key;
operator ==(Object other) => other is ConfigKeys && other.key == key;

@override
int get hashCode => key.hashCode;
Expand Down Expand Up @@ -363,12 +363,13 @@ class ProjectConfig extends Config {
}) {
// merge map and override the keys
final mergedFlavors = <String, String>{
if (this.flavors != null) ...this.flavors!,
if (this.flavors != null) ...?this.flavors,
// ignore: prefer-null-aware-spread
if (flavors != null) ...flavors,
};

return ProjectConfig(
cachePath: cachePath ?? cachePath,
cachePath: cachePath ?? this.cachePath,
useGitCache: useGitCache ?? this.useGitCache,
gitCachePath: gitCachePath ?? this.gitCachePath,
flutterUrl: flutterUrl ?? this.flutterUrl,
Expand Down
10 changes: 4 additions & 6 deletions lib/src/runner.dart
Original file line number Diff line number Diff line change
Expand Up @@ -195,9 +195,8 @@ class FvmCommandRunner extends CommandRunner<int> {
..detail('')
..detail('Argument information:');

final hasTopLevelOption = topLevelResults.options
.where((e) => topLevelResults.wasParsed(e))
.isNotEmpty;
final hasTopLevelOption =
topLevelResults.options.any((e) => topLevelResults.wasParsed(e));

if (hasTopLevelOption) {
logger.detail(' Top level options:');
Expand All @@ -214,9 +213,8 @@ class FvmCommandRunner extends CommandRunner<int> {
logger.detail('Command: ${commandResult.name}');

// Check if any command option was parsed
final hasCommandOption = commandResult.options
.where((e) => commandResult.wasParsed(e))
.isNotEmpty;
final hasCommandOption =
commandResult.options.any((e) => commandResult.wasParsed(e));

if (hasCommandOption) {
logger.detail(' Command options:');
Expand Down
2 changes: 1 addition & 1 deletion lib/src/services/config_repository.dart
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'dart:io';

import '../../fvm.dart';
import '../models/config_model.dart';
import '../utils/constants.dart';
import '../utils/helpers.dart';

Expand Down
22 changes: 13 additions & 9 deletions lib/src/services/flutter_service.dart
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,14 @@ import 'package:git/git.dart';
import 'package:io/io.dart' as io;
import 'package:mason_logger/mason_logger.dart';

import '../../fvm.dart';
import '../models/cache_flutter_version_model.dart';
import '../models/flutter_version_model.dart';
import '../utils/commands.dart';
import '../utils/context.dart';
import '../utils/exceptions.dart';
import '../utils/parsers/git_clone_update_printer.dart';
import 'base_service.dart';
import 'cache_service.dart';
import 'logger_service.dart';
import 'releases_service/releases_client.dart';

Expand Down Expand Up @@ -78,13 +79,16 @@ class FlutterService extends ContextService {
];

try {
final result = await runGit([
'clone',
'--progress',
...cloneArgs,
context.flutterUrl,
versionDir.path,
], echoOutput: !(context.isTest || !logger.isVerbose));
final result = await runGit(
[
'clone',
'--progress',
...cloneArgs,
context.flutterUrl,
versionDir.path,
],
echoOutput: !(context.isTest || !logger.isVerbose),
);

final gitVersionDir =
CacheService(context).getVersionCacheDir(version.name);
Expand Down Expand Up @@ -166,7 +170,7 @@ class FlutterService extends ContextService {

final tags = await getTags();

return tags.where((t) => t == tag).isNotEmpty;
return tags.any((t) => t == tag);
}

Future<List<String>> getTags() async {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ class Releases {
Map<String, dynamic> toMap() => {
'base_url': baseUrl,
'channels': channels.toMap(),
'releases': List<dynamic>.from(releases.map((x) => x.toMap())),
'releases': List.from(releases.map((x) => x.toMap())),
};
}

Expand All @@ -79,6 +79,7 @@ class Releases {
Releases _parseCurrentReleases(Map<String, dynamic> map) {
final baseUrl = map['base_url'] as String;
final currentRelease = map['current_release'] as Map<String, dynamic>;
// ignore: avoid-dynamic
final releasesJson = map['releases'] as List<dynamic>;

final systemArch = 'x64';
Expand Down
15 changes: 9 additions & 6 deletions lib/src/services/releases_service/releases_client.dart
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,15 @@ class FlutterReleases {
_cacheReleasesRes = Releases.fromJson(response);

return await Future.value(_cacheReleasesRes);
} on Exception {
throw AppException(
'Failed to retrieve the Flutter SDK from: ${getFlutterReleasesUrl(platform)}\n'
'Fvm will use the value set on '
'env FLUTTER_STORAGE_BASE_URL to check versions\n'
'if you are located in China, please see this page: https://flutter.dev/community/china',
} on Exception catch (_, stackTrace) {
Error.throwWithStackTrace(
AppException(
'Failed to retrieve the Flutter SDK from: ${getFlutterReleasesUrl(platform)}\n'
'Fvm will use the value set on '
'env FLUTTER_STORAGE_BASE_URL to check versions\n'
'if you are located in China, please see this page: https://flutter.dev/community/china',
),
stackTrace,
);
}
}
Expand Down
5 changes: 2 additions & 3 deletions lib/src/utils/commands.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import 'dart:io';

import '../models/cache_flutter_version_model.dart';
import 'context.dart';
import 'run_command.dart';

import '../../fvm.dart';
import 'helpers.dart';
import 'run_command.dart';

final _dartCmd = 'dart';
final _flutterCmd = 'flutter';
Expand Down
10 changes: 7 additions & 3 deletions lib/src/utils/context.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@ import 'package:mason_logger/mason_logger.dart';
import 'package:path/path.dart';
import 'package:scope/scope.dart';

import '../../fvm.dart';
import '../models/config_model.dart';
import '../services/cache_service.dart';
import '../services/config_repository.dart';
import '../services/flutter_service.dart';
import '../services/global_version_service.dart';
import '../services/logger_service.dart';
import '../services/project_service.dart';
import 'constants.dart';

final contextKey = ScopeKey<FVMContext>();
Expand All @@ -17,6 +19,7 @@ final contextKey = ScopeKey<FVMContext>();
///
/// Generators are allowed to return `null`, in which case the context will
/// store the `null` value as the value for that type.
// ignore: avoid-dynamic
typedef Generator = dynamic Function(FVMContext context);

FVMContext get ctx => use(contextKey, withDefault: () => FVMContext.main);
Expand Down Expand Up @@ -56,9 +59,10 @@ class FVMContext {
// Load config from file in config path
final projectConfig = ProjectConfig.loadFromPath(workingDirectory);
final envConfig = ConfigRepository.loadEnv();
var appConfig = ConfigRepository.loadFile();

appConfig = appConfig.mergeConfig(envConfig).mergeConfig(projectConfig);
final appConfig = ConfigRepository.loadFile()
.mergeConfig(envConfig)
.mergeConfig(projectConfig);

// Merge config from file with env config
final config = appConfig.merge(configOverrides);
Expand Down
4 changes: 1 addition & 3 deletions lib/src/utils/deprecation_util.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import 'dart:io';
import 'package:mason_logger/mason_logger.dart';
import 'package:path/path.dart';

import '../../fvm.dart';
import '../models/config_model.dart';
import '../services/config_repository.dart';
import '../services/logger_service.dart';
import 'constants.dart';
Expand Down Expand Up @@ -96,6 +96,4 @@ void _warnDeprecatedEnvVars() {
logger.warn('$oldCachePathEnv environment variable is deprecated. ');
logger.info('Please use ${ConfigKeys.cachePath.envKey} instead');
}

if (flutterRoot == null || fvmHome == null) {}
}
2 changes: 2 additions & 0 deletions lib/src/utils/helpers.dart
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ String assignVersionWeight(String version) {
}

try {
// Checking to throw an issue if it cannot parse
// ignore: avoid-unused-instances
Version.parse(version);
} on Exception {
logger.warn('Version $version is not a valid semver');
Expand Down
5 changes: 4 additions & 1 deletion lib/src/utils/parsers/git_clone_update_printer.dart
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import 'dart:convert';
import 'dart:io';

import 'package:mason_logger/mason_logger.dart';

import '../../services/logger_service.dart';
import '../extensions.dart';
import 'package:mason_logger/mason_logger.dart';

final regexes = {
'Enumerating objects:': RegExp(r'Enumerating objects: +(\d+)%'),
Expand Down Expand Up @@ -61,10 +62,12 @@ void printProgressBar(String label, int percentage) {
Future<void> runGitCloneUpdate(List<String> args) async {
final process = await Process.start('git', args);

// ignore: avoid-unassigned-stream-subscriptions
process.stderr.transform(utf8.decoder).listen((line) {
updateProgress(line);
});

// ignore: avoid-unassigned-stream-subscriptions
process.stdout.transform(utf8.decoder).listen((line) {
logger.info(line);
});
Expand Down
Loading

0 comments on commit d328a1a

Please sign in to comment.