From 815d07af52e87e6de6626f8d21532954fd0071da Mon Sep 17 00:00:00 2001 From: leedongmyung Date: Wed, 1 Jan 2025 19:29:32 +0900 Subject: [PATCH] update code refactoring --- .../commands/scheduler/scheduler_manager.dart | 27 +++++++++++++------ .../commands/scheduler/scheduler_windows.dart | 9 +++++-- lib/oto/application.dart | 3 ++- 3 files changed, 28 insertions(+), 11 deletions(-) diff --git a/lib/cli/commands/scheduler/scheduler_manager.dart b/lib/cli/commands/scheduler/scheduler_manager.dart index cbc5e7f..e5bb4ad 100644 --- a/lib/cli/commands/scheduler/scheduler_manager.dart +++ b/lib/cli/commands/scheduler/scheduler_manager.dart @@ -1,3 +1,5 @@ +// ignore_for_file: depend_on_referenced_packages + import 'dart:collection'; import 'dart:convert'; import 'dart:io'; @@ -227,14 +229,23 @@ class SchedulerManager { Future _startProcess() async { //Launchd로 자동 실행이 되지 않은경우 직접실행 if (_currentScheduler == null) { - var script = isDebug ? ' $scriptPath' : ''; - var shell = StringBuffer(); - shell.writeln('nohup $executablePath$script scheduler -s &'); - // shell.writeln('disown'); - print(shell.toString()); - ProcessExecutor.run(shell, - workspace: Directory.systemTemp.path, printStdout: false); - await _checkProcess(); + if (Platform.isWindows) { + final program = Platform.resolvedExecutable; + var arguments = []; + if (isDebug) arguments.add(scriptPath); + arguments.addAll(['scheduler', '-s']); + await Process.start(program, arguments, + mode: ProcessStartMode.detached); + } else { + var script = isDebug ? ' $scriptPath' : ''; + var shell = StringBuffer(); + shell.writeln('nohup $executablePath$script scheduler -s &'); + // shell.writeln('disown'); + print(shell.toString()); + ProcessExecutor.run(shell, + workspace: Directory.systemTemp.path, printStdout: false); + await _checkProcess(); + } } return simpleFuture; } diff --git a/lib/cli/commands/scheduler/scheduler_windows.dart b/lib/cli/commands/scheduler/scheduler_windows.dart index e893c45..b3526e5 100644 --- a/lib/cli/commands/scheduler/scheduler_windows.dart +++ b/lib/cli/commands/scheduler/scheduler_windows.dart @@ -1,6 +1,11 @@ +import 'dart:io'; import 'package:oto_cli/cli/commands/scheduler/scheduler_manager.dart'; class SchedulerWindows extends SchedulerManager { - -} \ No newline at end of file + @override + String get exePath { + var exe = Platform.resolvedExecutable; + return exe; + } +} diff --git a/lib/oto/application.dart b/lib/oto/application.dart index 6bba114..54127fb 100644 --- a/lib/oto/application.dart +++ b/lib/oto/application.dart @@ -126,8 +126,9 @@ class Application { exit(10); } - if (logEnable) + if (logEnable) { await printBuildStep('Build Successfully Complete', Color.cyan); + } if (buildType != BuildType.scheduler) { exit(0); }