bestForOpenSUSE method
Determines the best installation method for OpenSUSE.
The to parameter is the installation target.
Implementation
Future<String> bestForOpenSUSE({String to = 'install'}) async {
final methods = package.methods ?? [];
final hasMethod = methods.contains('zypper');
final defaults = package.defaults ?? [];
final hasDefault = defaults.contains('zypper');
if (hasMethod || hasDefault) {
final zypper = await Executable('zypper').find();
if (zypper != null) {
Global.updateCommand = '${Global.sudoPath} $zypper refresh || $errorOnUpdate';
if (hasDefault) {
return '${Global.sudoPath} $zypper --non-interactive $to ${package.name}';
}
return '${to}_zypper "${Global.sudoPath} $zypper --non-interactive"';
}
}
if (forceMethod) {
leave(message: 'No suitable package manager found. [FORCED: $preferredMethod]', exitCode: 1);
}
return await bestForAny(to: to);
}