Example #1
0
 /**
  * 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();
 }
Example #3
0
 /**
  * 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');
 }