/** * getDevs * * @access private * @return array of devices */ private function getDevs() { // Time? if (!empty($this->settings['timer'])) { $t = new LinfoTimerStart('Hardware Devices'); } // Location of useful paths $pci_ids = locate_actual_path(array('/usr/share/misc/pci.ids', '/usr/share/pci.ids', '/usr/share/hwdata/pci.ids')); $usb_ids = locate_actual_path(array('/usr/share/misc/usb.ids', '/usr/share/usb.ids', '/usr/share/hwdata/usb.ids')); // Class that does it $hw = new HW_IDS($usb_ids, $pci_ids); $hw->work('linux'); return $hw->result(); }
/** * getDevs * * @access private * @return array of devices */ private function getDevs() { // Time? if (!empty($this->settings['timer'])) { $t = new LinfoTimerStart('Hardware Devices'); } // Location of useful paths $pci_ids = locate_actual_path(array('/usr/share/misc/pci.ids', '/usr/share/pci.ids', '/usr/share/hwdata/pci.ids')); $usb_ids = locate_actual_path(array('/usr/share/misc/usb.ids', '/usr/share/usb.ids', '/usr/share/hwdata/usb.ids')); // Did we not get them? $pci_ids || $this->error->add('Linux Device Finder', 'Cannot find pci.ids; ensure pciutils is installed.'); $usb_ids || $this->error->add('Linux Device Finder', 'Cannot find usb.ids; ensure usbutils is installed.'); // Class that does it $hw = new HW_IDS($usb_ids, $pci_ids); $hw->work('linux'); return $hw->result(); }
/** * Run a command and cache its output for later * * @throws CallExtException * @param string $name name of executable to call * @param string $switches command arguments */ public function exec($name, $switches = '') { // Need settings global $settings; // Sometimes it is necessary to call a program with sudo $attempt_sudo = array_key_exists('sudo_apps', $settings) && in_array($name, $settings['sudo_apps']); // Have we gotten it before? if (array_key_exists($name . $switches, $this->cliCache)) { return $this->cliCache[$name . $switches]; } // Try finding the exec foreach ($this->searchPaths as $path) { // Found it; run it if (is_file($path . $name) && is_executable($path . $name)) { // Complete command, path switches and all $command = "{$path}{$name} {$switches}"; // Sudoing? $command = $attempt_sudo ? locate_actual_path(array_append_string($this->searchPaths, 'sudo', '%2s%1s')) . ' ' . $command : $command; // Result of command $result = `{$command}`; // Increment call count self::$callCount++; // Cache that $this->cliCache[$name . $switches] = $result; // Give result return $result; // Redundancy break; } } // Never got it throw new CallExtException('Exec `' . $name . '\' not found'); }