From 877a0ee9ef4fee951b5ad016ae6c16291d27b103 Mon Sep 17 00:00:00 2001
From: Herman van Rink <rink@initfour.nl>
Date: Fri, 10 Jul 2020 12:03:33 +0200
Subject: [PATCH] Refactor to use is_installed helper function

---
 .../lib/classes/cron.d/100-monitor_iptables.inc.php  |  6 ++----
 server/lib/classes/cron.d/100-monitor_raid.inc.php   | 12 ++++--------
 .../lib/classes/cron.d/100-monitor_rkhunter.inc.php  |  3 +--
 server/lib/classes/cron.d/500-backup_mail.inc.php    |  3 +--
 4 files changed, 8 insertions(+), 16 deletions(-)

diff --git a/server/lib/classes/cron.d/100-monitor_iptables.inc.php b/server/lib/classes/cron.d/100-monitor_iptables.inc.php
index 2bf9404735..cff0a73ac3 100644
--- a/server/lib/classes/cron.d/100-monitor_iptables.inc.php
+++ b/server/lib/classes/cron.d/100-monitor_iptables.inc.php
@@ -67,8 +67,7 @@ class cronjob_monitor_iptables extends cronjob {
 		$type = 'iptables_rules';
 
 		/* This monitoring is only available if fail2ban is installed */
-		system('which iptables > /dev/null', $retval); // Debian, Ubuntu, Fedora
-		if ($retval === 0) {
+		if ($app->system->is_installed('iptables')) {
 			/*  Get the data of the log */
 			$data['output'] = '<h2>iptables -S (ipv4)</h2>'.shell_exec('iptables -S 2>/dev/null');
 
@@ -83,8 +82,7 @@ class cronjob_monitor_iptables extends cronjob {
 
 
 		/* This monitoring is only available if fail2ban is installed */
-		system('which ip6tables > /dev/null', $retval); // Debian, Ubuntu, Fedora
-		if ($retval === 0) {
+		if ($app->system->is_installed('ip6tables')) {
 			/*  Get the data of the log */
 			$data['output'] .= '<br><h2>ip6tables -S (ipv6)</h2>'.shell_exec('ip6tables -S 2>/dev/null');
 
diff --git a/server/lib/classes/cron.d/100-monitor_raid.inc.php b/server/lib/classes/cron.d/100-monitor_raid.inc.php
index d1a9a53455..7148aee1c8 100644
--- a/server/lib/classes/cron.d/100-monitor_raid.inc.php
+++ b/server/lib/classes/cron.d/100-monitor_raid.inc.php
@@ -126,8 +126,7 @@ class cronjob_monitor_raid extends cronjob {
 		 * Check, if we have mpt-status installed (LSIsoftware-raid)
 		 */
 		if (file_exists('/proc/mpt/summary')) {
-			system('which mpt-status', $retval);
-			if ($retval === 0) {
+			if ($app->system->is_installed('mpt-status')) {
 				/*
 				 * Fetch the output
 				 */
@@ -174,8 +173,7 @@ class cronjob_monitor_raid extends cronjob {
 		/*
 		* 3ware Controller
 		*/
-		system('which tw_cli', $retval);
-		if($retval === 0) {
+		if($app->system->is_installed('tw_cli')) {
 
 			// TYPOWORX FIX | Determine Controler-ID
 			$availableControlers = shell_exec('tw_cli info | grep -Eo "c[0-9]+"');
@@ -232,8 +230,7 @@ class cronjob_monitor_raid extends cronjob {
 		/*
 		* HP Proliant
 		*/
-		system('which hpacucli', $retval);
-		if($retval === 0) {
+		if($app->system->is_installed('hpacucli')) {
 			$state = 'ok';
 			$data['output'] = shell_exec('/usr/sbin/hpacucli ctrl all show config');
 			$tmp = explode("\n", $data['output']);
@@ -298,8 +295,7 @@ class cronjob_monitor_raid extends cronjob {
 		/*
 		* Adaptec-RAID
 		*/
-		system('which arcconf', $retval);
-		if($retval === 0) {
+		if($app->system->is_installed('arcconf')) {
 			$state = 'ok';
 			$data['output'] = shell_exec('arcconf GETCONFIG 1 LD');
 			if(is_array($data['output'])) {
diff --git a/server/lib/classes/cron.d/100-monitor_rkhunter.inc.php b/server/lib/classes/cron.d/100-monitor_rkhunter.inc.php
index 43071b8387..5efb9420ec 100644
--- a/server/lib/classes/cron.d/100-monitor_rkhunter.inc.php
+++ b/server/lib/classes/cron.d/100-monitor_rkhunter.inc.php
@@ -67,8 +67,7 @@ class cronjob_monitor_rkhunter extends cronjob {
 		$type = 'rkhunter';
 
 		/* This monitoring is only available if rkhunter is installed */
-		system('which rkhunter', $retval);
-		if ($retval === 0) {
+		if ($app->system->is_installed('rkhunter')) {
 			/*
 			 * Fetch the output
 			 */
diff --git a/server/lib/classes/cron.d/500-backup_mail.inc.php b/server/lib/classes/cron.d/500-backup_mail.inc.php
index 2b1fd58177..f631f0043c 100644
--- a/server/lib/classes/cron.d/500-backup_mail.inc.php
+++ b/server/lib/classes/cron.d/500-backup_mail.inc.php
@@ -78,8 +78,7 @@ class cronjob_backup_mail extends cronjob {
 				} else {
 					chmod($backup_dir, $backup_dir_permissions);
 				}
-				system('which pigz > /dev/null', $ret);
-				if($ret === 0) {
+				if($app->system->is_installed('pigz')) {
 					$use_pigz = true;
 				} else {
 					$use_pigz = false;
-- 
GitLab