From 1f48ca47116137f13e127ea660fcfe01a2276af5 Mon Sep 17 00:00:00 2001 From: Ante de Baas Date: Sun, 31 May 2020 20:10:07 +0200 Subject: [PATCH] autodeterct distribution in CLI --- lib/Froxlor/Cli/Action/ConfigServicesAction.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/Froxlor/Cli/Action/ConfigServicesAction.php b/lib/Froxlor/Cli/Action/ConfigServicesAction.php index 73192a91..f4a941f1 100644 --- a/lib/Froxlor/Cli/Action/ConfigServicesAction.php +++ b/lib/Froxlor/Cli/Action/ConfigServicesAction.php @@ -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