Remove duplicate code

This commit is contained in:
adrian 2015-07-20 11:18:56 +02:00
commit d4b44ebde2

View file

@ -109,6 +109,27 @@ class Server {
return $output; return $output;
} }
/**
* Filters the raw output
*
* @param string $filter
* @return array
*/
private function filterRawOutput($rawOutput, $filter) {
$filtered = array();
foreach ($rawOutput as $line) {
if (strpos($line, '|')) {
list($type, $name, $description) = explode('|', $line);
if (strtolower($type) === $filter) {
$filtered[$name] = $description;
}
}
}
return $filtered;
}
/** /**
* @return \Icewind\SMB\IShare[] * @return \Icewind\SMB\IShare[]
* *
@ -116,15 +137,7 @@ class Server {
public function listShares() { public function listShares() {
$output = $this->listSMB(); $output = $this->listSMB();
$shareNames = array(); $shareNames = $this->filterRawOutput($output, 'disk');
foreach ($output as $line) {
if (strpos($line, '|')) {
list($type, $name, $description) = explode('|', $line);
if (strtolower($type) === 'disk') {
$shareNames[$name] = $description;
}
}
}
$shares = array(); $shares = array();
foreach ($shareNames as $name => $description) { foreach ($shareNames as $name => $description) {
@ -140,17 +153,7 @@ class Server {
public function listPrinters() { public function listPrinters() {
$output = $this->listSMB(); $output = $this->listSMB();
$printers = array(); return $this->filterRawOutput($output, 'printer');
foreach ($output as $line) {
if (strpos($line, '|')) {
list($type, $name, $description) = explode('|', $line);
if (strtolower($type) === 'printer') {
$printers[$name] = $description;
}
}
}
return $printers;
} }
/** /**