run method

  1. @override
void run()
override

Runs this command.

The return value is wrapped in a Future if necessary and returned by CommandRunner.runCommand.

Implementation

@override
void run() async {
  final String name = argResults!['name'];
  final String? executablePath = argResults!['path'];
  final String? icon = argResults!['icon'];
  final String? description = argResults!['description'];
  final List<String> category = argResults!['category'];
  final bool terminal = argResults!['terminal'];
  final String type = argResults!['type'];
  final List<String> mime = argResults!['mime'];
  final bool startup = argResults!['startup'];

  final bool sudo = argResults!['sudo'];
  final bool remove = argResults!['remove'];

  var shortcut = Shortcut(
    name: name,
    executablePath: executablePath,
    icon: icon,
    comment: description,
    categories: category.join(';'),
    terminal: terminal,
    type: type,
    mime: mime.join(';'),
    startup: startup,
    sudo: sudo,
  );

  if (remove) {
    await shortcut.delete();

    Logger.info("Shortcut removed.");
  } else {
    await shortcut.create();

    Logger.info("Shortcut created.");
  }
  exit(success);
}