From 1f2e6c5d0ad66c0cd428135b8adcf23bf2cce48f Mon Sep 17 00:00:00 2001 From: Toki Date: Sat, 21 Dec 2024 20:30:55 +0900 Subject: [PATCH] =?UTF-8?q?scheduler=20=EC=9E=91=EC=97=85=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/main.dart | 10 ++--- lib/cli/commands/command_scheduler.dart | 40 +++++++++++++++++++ lib/cli/commands/scheduler/scheduler.dart | 20 ++++++++++ .../commands/scheduler/scheduler_linux.dart | 6 +++ lib/cli/commands/scheduler/scheduler_osx.dart | 6 +++ .../commands/scheduler/scheduler_windows.dart | 6 +++ 6 files changed, 82 insertions(+), 6 deletions(-) create mode 100644 lib/cli/commands/command_scheduler.dart create mode 100644 lib/cli/commands/scheduler/scheduler.dart create mode 100644 lib/cli/commands/scheduler/scheduler_linux.dart create mode 100644 lib/cli/commands/scheduler/scheduler_osx.dart create mode 100644 lib/cli/commands/scheduler/scheduler_windows.dart diff --git a/bin/main.dart b/bin/main.dart index ee30636..acbdb38 100644 --- a/bin/main.dart +++ b/bin/main.dart @@ -1,18 +1,16 @@ import 'package:dart_framework/utils/system_util.dart'; import 'package:oto_cli/cli/cli.dart'; +import 'package:oto_cli/cli/commands/command_scheduler.dart'; import 'package:oto_cli/cli/commands/command_template.dart'; -import 'package:oto_cli/cli/commands/command_install.dart'; +// import 'package:oto_cli/cli/commands/command_install.dart'; import 'package:oto_cli/cli/commands/command_exe.dart'; -import 'package:oto_cli/cli/commands/command_start.dart'; +// import 'package:oto_cli/cli/commands/command_start.dart'; void main(List arguments) async { initialize(); CLI.initialize('OTO', arguments, [ CommandTemplate(), - CommandInstall(), - CommandUninstall(), CommandExe(), - CommandStart(), - CommandStop() + CommandScheduler() ]); } diff --git a/lib/cli/commands/command_scheduler.dart b/lib/cli/commands/command_scheduler.dart new file mode 100644 index 0000000..679d39b --- /dev/null +++ b/lib/cli/commands/command_scheduler.dart @@ -0,0 +1,40 @@ +import 'dart:async'; + +import 'package:oto_cli/cli/commands/command_base.dart'; +import 'package:dart_framework/utils/system_util.dart'; +import 'package:oto_cli/cli/commands/scheduler/scheduler.dart'; + +class CommandScheduler extends CommandBase { + + @override + Map> get arguments => { + '-l': ["Shows the currently operational schedulers."], + '-k {alias}': ["Shut down the active scheduler."] + }; + @override + String get name => 'scheduler'; + final Scheduler _scheduler = Scheduler(); + + @override + Future execute(List parameters) async { + for (var i = 0; i < parameters.length; ++i) { + var item = parameters[i]; + if (item.startsWith('-l')) { + } else if (item.startsWith('-k')) { + var alias = ''; + if (parameters.length > i + 1) { + alias = parameters[i + 1]; + } else { + alias = item.replaceFirst('-f', '').trimLeft(); + } + print('======================> $alias'); + } + } + return simpleFuture; + } + + @override + String getDescription() { + return ':::: Run as a service on the background.'; + } +} \ No newline at end of file diff --git a/lib/cli/commands/scheduler/scheduler.dart b/lib/cli/commands/scheduler/scheduler.dart new file mode 100644 index 0000000..fbd3c53 --- /dev/null +++ b/lib/cli/commands/scheduler/scheduler.dart @@ -0,0 +1,20 @@ + +import 'dart:io'; + +import 'package:oto_cli/cli/commands/scheduler/scheduler_linux.dart'; +import 'package:oto_cli/cli/commands/scheduler/scheduler_osx.dart'; +import 'package:oto_cli/cli/commands/scheduler/scheduler_windows.dart'; + +abstract class Scheduler { + factory Scheduler() { + if(Platform.isMacOS) { + return SchedulerOsx(); + } else if(Platform.isWindows) { + return SchedulerWindows(); + } else if(Platform.isLinux) { + return SchedulerLinux(); + } else { + throw UnsupportedError('This platform not supported.'); + } + } +} \ No newline at end of file diff --git a/lib/cli/commands/scheduler/scheduler_linux.dart b/lib/cli/commands/scheduler/scheduler_linux.dart new file mode 100644 index 0000000..42a3279 --- /dev/null +++ b/lib/cli/commands/scheduler/scheduler_linux.dart @@ -0,0 +1,6 @@ + +import 'package:oto_cli/cli/commands/scheduler/scheduler.dart'; + +class SchedulerLinux implements Scheduler { + +} \ No newline at end of file diff --git a/lib/cli/commands/scheduler/scheduler_osx.dart b/lib/cli/commands/scheduler/scheduler_osx.dart new file mode 100644 index 0000000..73a25f2 --- /dev/null +++ b/lib/cli/commands/scheduler/scheduler_osx.dart @@ -0,0 +1,6 @@ + +import 'package:oto_cli/cli/commands/scheduler/scheduler.dart'; + +class SchedulerOsx implements Scheduler { + +} \ No newline at end of file diff --git a/lib/cli/commands/scheduler/scheduler_windows.dart b/lib/cli/commands/scheduler/scheduler_windows.dart new file mode 100644 index 0000000..ea771ae --- /dev/null +++ b/lib/cli/commands/scheduler/scheduler_windows.dart @@ -0,0 +1,6 @@ + +import 'package:oto_cli/cli/commands/scheduler/scheduler.dart'; + +class SchedulerWindows implements Scheduler { + +} \ No newline at end of file