autodeterct distribution in CLI

This commit is contained in:
Ante de Baas
2020-05-31 20:10:07 +02:00
parent fe0fb8dd5f
commit 1f48ca4711

View File

@@ -83,6 +83,12 @@ class ConfigServicesAction extends \Froxlor\Cli\Action
$distros = glob($config_dir . '*.xml');
// tmp array
$distributions_select_data = array();
//read os-release
$os_dist = parse_ini_file('/etc/os-release', false);
$os_version = explode('.',$os_dist['VERSION_ID'])[0];
$os_default = "";
// read in all the distros
foreach ($distros as $_distribution) {
// get configparser object
@@ -91,6 +97,11 @@ class ConfigServicesAction extends \Froxlor\Cli\Action
$dist_display = $this->getCompleteDistroName($dist);
// store in tmp array
$distributions_select_data[$dist_display] = str_replace(".xml", "", strtolower(basename($_distribution)));
$ver = explode('.', $dist->distributionVersion)[0];
if (strtolower($os_dist['ID']) == strtolower($dist->distributionName) && $os_version == $ver) {
$os_default = str_replace(".xml", "", strtolower(basename($_distribution)));
}
}
// sort by distribution name
@@ -108,7 +119,7 @@ class ConfigServicesAction extends \Froxlor\Cli\Action
echo PHP_EOL;
while (! in_array($_daemons_config['distro'], $distributions_select_data)) {
$_daemons_config['distro'] = ConfigServicesCmd::getInput("choose distribution", "buster");
$_daemons_config['distro'] = ConfigServicesCmd::getInput("choose distribution", $os_default);
}
// go through all services and let user check whether to include it or not