oto/lib/cli/commands/command_install.dart
leedongmyung[desktop] 5e74ae06f3 Inital push
2023-10-28 22:06:44 +09:00

55 lines
1.5 KiB
Dart

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<String> 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<String> parameters) async {
var c = Completer<bool>();
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.';
}
}