From d69106adeb1f7e35f85f69545fc56def2dacdba0 Mon Sep 17 00:00:00 2001 From: Hugo Pointcheval <git@pcl.ovh> Date: Fri, 29 Mar 2024 21:08:59 +0100 Subject: [PATCH] fix(cd): make cd use new usecases --- .../wyatt_continuous_deployment_example.dart | 23 +++++++++++++++++++ .../example/lib/main.dart | 2 +- .../init_project/init_project_task.dart | 2 +- .../lib/src/core/task/task_cubit.dart | 2 +- .../lib/src/domain/entities/flutter.dart | 6 ++--- .../src/domain/usecases/process_usecase.dart | 7 +++--- .../requirements/check_tools_usecase.dart | 2 +- .../lib/src/domain/usecases/usecase.dart | 5 ---- 8 files changed, 33 insertions(+), 16 deletions(-) create mode 100644 packages/wyatt_continuous_deployment/example/bin/wyatt_continuous_deployment_example.dart diff --git a/packages/wyatt_continuous_deployment/example/bin/wyatt_continuous_deployment_example.dart b/packages/wyatt_continuous_deployment/example/bin/wyatt_continuous_deployment_example.dart new file mode 100644 index 00000000..6b90a629 --- /dev/null +++ b/packages/wyatt_continuous_deployment/example/bin/wyatt_continuous_deployment_example.dart @@ -0,0 +1,23 @@ +// Copyright (C) 2024 WYATT GROUP +// Please see the AUTHORS file for details. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <https://www.gnu.org/licenses/>. + +import 'dart:io'; + +import 'package:wyatt_continuous_deployment_example/main.dart'; + +void main(List<String> args) { + WyattContinuousDeploymentExample.run(args).then((_) => exit(0)); +} diff --git a/packages/wyatt_continuous_deployment/example/lib/main.dart b/packages/wyatt_continuous_deployment/example/lib/main.dart index 6eb17eda..d3342cf8 100644 --- a/packages/wyatt_continuous_deployment/example/lib/main.dart +++ b/packages/wyatt_continuous_deployment/example/lib/main.dart @@ -20,7 +20,7 @@ class WyattContinuousDeploymentExample { static Future<void> run(List<String> args) async { const useCase = CheckToolsUsecase(); - final result = await useCase(null); + final result = await useCase(); result.fold((value) => print('Success'), (error) => print('Error: $error')); } diff --git a/packages/wyatt_continuous_deployment/lib/src/core/commands/init_project/init_project_task.dart b/packages/wyatt_continuous_deployment/lib/src/core/commands/init_project/init_project_task.dart index eb37bbc8..0c917b4a 100644 --- a/packages/wyatt_continuous_deployment/lib/src/core/commands/init_project/init_project_task.dart +++ b/packages/wyatt_continuous_deployment/lib/src/core/commands/init_project/init_project_task.dart @@ -66,7 +66,7 @@ class InitProjectTask extends TaskCubit { // 2. Check tools emit(TaskStateCheckTools()); - final checkToolsResult = await checkToolsUsecase(null); + final checkToolsResult = await checkToolsUsecase(); if (checkToolsResult.isErr) { return emit(TaskStateError.fromRes(checkToolsResult)); } diff --git a/packages/wyatt_continuous_deployment/lib/src/core/task/task_cubit.dart b/packages/wyatt_continuous_deployment/lib/src/core/task/task_cubit.dart index 51a36466..c974052b 100644 --- a/packages/wyatt_continuous_deployment/lib/src/core/task/task_cubit.dart +++ b/packages/wyatt_continuous_deployment/lib/src/core/task/task_cubit.dart @@ -62,7 +62,7 @@ abstract class TaskCubit extends Cubit<TaskState> { if (checks) { emit(TaskStateCheckTools()); - final checkToolsResult = await _checkToolsUsecase(null); + final checkToolsResult = await _checkToolsUsecase(); if (checkToolsResult.isErr) { return emit(TaskStateError.fromRes(checkToolsResult)); } diff --git a/packages/wyatt_continuous_deployment/lib/src/domain/entities/flutter.dart b/packages/wyatt_continuous_deployment/lib/src/domain/entities/flutter.dart index d2c59a18..9d912310 100644 --- a/packages/wyatt_continuous_deployment/lib/src/domain/entities/flutter.dart +++ b/packages/wyatt_continuous_deployment/lib/src/domain/entities/flutter.dart @@ -49,9 +49,9 @@ class Flutter { final FlutterBuildIpaUsecase _flutterBuildIpaUsecase; final FlutterBuildAppBundleUsecase _flutterBuildAppBundleUsecase; - FutureOrResult<void> clean() => _flutterCleanUsecase(null); - FutureOrResult<void> getDependencies() => _flutterPubGetUsecase(null); - FutureOrResult<void> createXcArchive() => _flutterBuildXcarchiveUsecase(null); + FutureOrResult<void> clean() => _flutterCleanUsecase(); + FutureOrResult<void> getDependencies() => _flutterPubGetUsecase(); + FutureOrResult<void> createXcArchive() => _flutterBuildXcarchiveUsecase(); FutureOrResult<void> buildIpa(List<String> args) => _flutterBuildIpaUsecase(args); FutureOrResult<void> buildAppBundle(List<String> args) => diff --git a/packages/wyatt_continuous_deployment/lib/src/domain/usecases/process_usecase.dart b/packages/wyatt_continuous_deployment/lib/src/domain/usecases/process_usecase.dart index 99c8fc89..4770374e 100644 --- a/packages/wyatt_continuous_deployment/lib/src/domain/usecases/process_usecase.dart +++ b/packages/wyatt_continuous_deployment/lib/src/domain/usecases/process_usecase.dart @@ -19,7 +19,6 @@ import 'dart:io'; import 'package:wyatt_architecture/wyatt_architecture.dart'; import 'package:wyatt_continuous_deployment/src/core/utils/logging.dart'; -import 'package:wyatt_continuous_deployment/src/domain/usecases/usecase.dart'; import 'package:wyatt_type_utils/wyatt_type_utils.dart'; abstract class ProcessUsecase<T> extends AsyncUseCase<T, void> { @@ -58,7 +57,7 @@ abstract class ProcessUsecase<T> extends AsyncUseCase<T, void> { } progress.complete(onCompletedMessage); logger.detail(processResult?.stdout.toString().trim()); - return const Ok(null); + return Ok(null); } /// Run the process with the given parameters. @@ -81,7 +80,7 @@ abstract class ProcessNoParamsUsecase extends NoParamsAsyncUseCase<void> { String get onErrorMessage; @override - FutureOrResult<void> execute(void params) async { + FutureOrResult<void> execute() async { final progress = logger.progress(onStartedMessage); final processResult = await run(); if (processResult != null) { @@ -94,7 +93,7 @@ abstract class ProcessNoParamsUsecase extends NoParamsAsyncUseCase<void> { } progress.complete(onCompletedMessage); logger.detail(processResult?.stdout.toString().trim()); - return const Ok(null); + return Ok(null); } /// Run the process with no parameters. diff --git a/packages/wyatt_continuous_deployment/lib/src/domain/usecases/requirements/check_tools_usecase.dart b/packages/wyatt_continuous_deployment/lib/src/domain/usecases/requirements/check_tools_usecase.dart index d4ba6dca..21023bdb 100644 --- a/packages/wyatt_continuous_deployment/lib/src/domain/usecases/requirements/check_tools_usecase.dart +++ b/packages/wyatt_continuous_deployment/lib/src/domain/usecases/requirements/check_tools_usecase.dart @@ -27,7 +27,7 @@ class CheckToolsUsecase extends NoParamsAsyncUseCase<void> { const CheckToolsUsecase() : super(); @override - FutureOrResult<void> execute(void params) async => unsafeAsync(() async { + FutureOrResult<void> execute() async => unsafeAsync(() async { final missingTools = <String>[]; for (final tool in AppConstants.requiredTools) { final isInstalled = await checkToolInstalled(tool); diff --git a/packages/wyatt_continuous_deployment/lib/src/domain/usecases/usecase.dart b/packages/wyatt_continuous_deployment/lib/src/domain/usecases/usecase.dart index a458817f..5015df15 100644 --- a/packages/wyatt_continuous_deployment/lib/src/domain/usecases/usecase.dart +++ b/packages/wyatt_continuous_deployment/lib/src/domain/usecases/usecase.dart @@ -17,7 +17,6 @@ import 'dart:async'; import 'package:wyatt_architecture/wyatt_architecture.dart'; -import 'package:wyatt_continuous_deployment/src/core/extensions/object_extension.dart'; import 'package:wyatt_type_utils/wyatt_type_utils.dart'; typedef Res<T> = Result<T, AppException>; @@ -28,7 +27,3 @@ FutureOrResult<T> unsafeAsync<T>(FutureOr<T> Function() fn) => () async => fn.call(), (error) => error.toException(), ); - -abstract class NoParamsAsyncUseCase<T> extends AsyncUseCase<void, T> { - const NoParamsAsyncUseCase(); -}