Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 20 additions & 11 deletions bin/inno_build.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
// bin/inno_build.dart

// Dart imports:
import 'dart:io';

Expand All @@ -10,11 +12,11 @@ import 'package:inno_build/inno_build.dart';
import 'package:inno_build/models/build_mode.dart';
import 'package:inno_build/services/app_id_service.dart';
import 'package:inno_build/services/dependency_manager.dart';
import 'package:inno_build/services/flutter_builder.dart';
import 'package:inno_build/services/inno_setup_manager.dart';
import 'package:inno_build/utils/constants.dart';
import 'package:inno_build/utils/pubspec_manager.dart';

/// The main entry point for the Inno Build CLI.
Future<void> main(List<String> arguments) async {
final parser = ArgParser()
..addOption('app-id', abbr: 'a', help: 'Generate a new InnoSetup AppID.')
Expand All @@ -25,22 +27,29 @@ Future<void> main(List<String> arguments) async {
..addFlag('install-inno',
abbr: 'i', help: 'Install Inno Setup if not present.')
..addFlag('skip-flutter-build', help: 'Skip the Flutter build step.')
..addFlag('verbose', abbr: 'v', help: 'Enable verbose output.')
..addFlag('quiet', abbr: 'q', help: 'Suppress output (quiet mode).')
..addFlag('help', abbr: 'h', help: 'Show this help message.')
..addFlag('version', help: 'Show version information.');
..addFlag('version', help: 'Show version information.')
..addFlag('obfuscate', help: 'Obfuscate the Dart code during the build.')
..addOption('split-debug-info',
help: 'Path to store split debug info files.')
..addMultiOption('dart-define',
help: 'Pass additional key-value pairs to the Dart compiler.')
..addOption('target',
abbr: 't', help: 'The main entry-point file of the application.')
..addFlag('verbose', abbr: 'v', help: 'Enable verbose output.')
..addFlag('quiet', abbr: 'q', help: 'Suppress output (quiet mode).');

final argResults = parser.parse(arguments);

stdout.writeln(welcomeMessage);

if (argResults['help']) {
print(helpMessage);
print(parser.usage);
return;
}

if (argResults['version']) {
print('Inno Build CLI v1.0.0');
print('inno_build v1.0.0');
return;
}

Expand All @@ -54,10 +63,10 @@ Future<void> main(List<String> arguments) async {

final buildMode = _determineBuildMode(argResults);

// Servislerin oluşturulması
final pubspecManager = PubspecManager();
final appIdService = AppIdService(pubspecManager);
final dependencyManager = DependencyManager(verbose: verbose);
final flutterBuilder = FlutterBuilder(buildMode, verbose: verbose);
final innoSetupManager =
InnoSetupManager(buildMode, verbose: verbose, quiet: quiet);
final spinner = CliSpin(isSilent: quiet);
Expand All @@ -67,7 +76,6 @@ Future<void> main(List<String> arguments) async {
pubspecManager: pubspecManager,
appIdService: appIdService,
dependencyManager: dependencyManager,
flutterBuilder: flutterBuilder,
innoSetupManager: innoSetupManager,
spinner: spinner,
buildMode: buildMode,
Expand All @@ -76,16 +84,17 @@ Future<void> main(List<String> arguments) async {
try {
await appLogic.run();
} catch (e) {
print(e);
exit(64); // Exit code for usage error
print('An error occurred: $e');
exit(1);
}
}

/// Determines the [BuildMode] based on the provided command-line arguments.
BuildMode _determineBuildMode(ArgResults argResults) {
if (argResults['debug']) {
if (argResults['release']) {
print('Error: --release and --debug cannot be used together.');
exit(64); // Exit code for usage error
exit(64);
}
return BuildMode.debug;
}
Expand Down
24 changes: 12 additions & 12 deletions example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -145,31 +145,31 @@ packages:
path: ".."
relative: true
source: path
version: "0.3.0"
version: "0.4.0"
leak_tracker:
dependency: transitive
description:
name: leak_tracker
sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0"
sha256: "8dcda04c3fc16c14f48a7bb586d4be1f0d1572731b6d81d51772ef47c02081e0"
url: "https://pub.dev"
source: hosted
version: "10.0.9"
version: "11.0.1"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1"
url: "https://pub.dev"
source: hosted
version: "3.0.9"
version: "3.0.10"
leak_tracker_testing:
dependency: transitive
description:
name: leak_tracker_testing
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1"
url: "https://pub.dev"
source: hosted
version: "3.0.1"
version: "3.0.2"
lints:
dependency: transitive
description:
Expand Down Expand Up @@ -275,10 +275,10 @@ packages:
dependency: transitive
description:
name: test_api
sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00"
url: "https://pub.dev"
source: hosted
version: "0.7.4"
version: "0.7.6"
typed_data:
dependency: transitive
description:
Expand All @@ -299,10 +299,10 @@ packages:
dependency: transitive
description:
name: vector_math
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b
url: "https://pub.dev"
source: hosted
version: "2.1.4"
version: "2.2.0"
vm_service:
dependency: transitive
description:
Expand All @@ -328,5 +328,5 @@ packages:
source: hosted
version: "2.0.0"
sdks:
dart: ">=3.7.0-0 <4.0.0"
dart: ">=3.8.0-0 <4.0.0"
flutter: ">=3.18.0-18.0.pre.54"
Loading