bestForApt method

Future<String> bestForApt({
  1. String to = 'install',
})

Determines the best installation method for Debian-based Linux distributions.

The to parameter is the installation target.

Implementation

Future<String> bestForApt({String to = 'install'}) async {
  final methods = package.methods ?? [];
  final hasMethod = methods.contains('apt');

  final defaults = package.defaults ?? [];
  final hasDefault = defaults.contains('apt');

  if (hasMethod || hasDefault) {
    final apt = await Executable('apt').find();
    final aptGet = await Executable('apt-get').find();

    final String? bestApt = apt ?? aptGet;

    if (bestApt != null) {
      Global.updateCommand = '${Global.sudoPath} $bestApt update || $errorOnUpdate';
      if (hasDefault) {
        return '${Global.sudoPath} $bestApt $to -y ${package.name}';
      }
      return '${to}_apt "${Global.sudoPath} $bestApt -y"';
    }
  }

  stopIfForcedMethodNotFound();

  return await bestForAny(to: to);
}