import 'dart:async'; import 'dart:io'; import 'package:dart_framework/utils/os_startup.dart'; import 'package:oto_cli/cli/cli.dart'; import 'package:oto_cli/cli/commands/command_base.dart'; class CommandInstall extends CommandBase { @override String get name => 'install'; @override Future execute(List parameters) async { var c = Completer(); var label = CLI.serviceName; if (!await OSStartup.isRegistedStartup(label)) { await OSStartup.registStartup(Platform.resolvedExecutable, label, arguments: ['start']); printOut('Installed successfully.', PrintType.information); } else { printOut('Installation failed because it is already installed.', PrintType.error); } return c.future; } @override String getDescription() { var serviceName = CLI.current.config.serviceName; return 'Install "$serviceName" to run in the background as a startup program.'; } } class CommandUninstall extends CommandBase { @override String get name => 'uninstall'; @override Future execute(List parameters) async { var c = Completer(); var label = CLI.serviceName; if (await OSStartup.isRegistedStartup(label)) { await OSStartup.unregistStartup(label); printOut('Uninstalled successfully.', PrintType.information); } else { printOut('It is already uninstalled.', PrintType.warning); } return c.future; } @override String getDescription() { return 'Delete it from Startup.'; } }