All pastes #406610 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-03-22 15:33 UTC
rendered paste body
  function usb () {
    $results = array();
    $devnum = -1;

    $bufr = execute_program('lsusb', '', false);
    if( $bufr == "ERROR" ) {
	$bufr = rfts( '/proc/bus/usb/devices', 0, 4096, false );
        if ( $bufr != "ERROR" ) {
    	    $bufe = explode("\n", $bufr);
	    foreach( $bufe as $buf ) {
        	if (preg_match('/^T/', $buf)) {
            	    $devnum += 1;
    		    $results[$devnum] = "";
        	} elseif (preg_match('/^S:/', $buf)) {
            	    list($key, $value) = split(': ', $buf, 2);
            	    list($key, $value2) = split('=', $value, 2);
    		    if (trim($key) != "SerialNumber") {
            		$results[$devnum] .= " " . trim($value2);
            		$devstring = 0;
    		    }
        	} 
            }
        } 
    } else {
	$bufe = explode( "\n", $bufr );
	foreach( $bufe as $buf ) {
	    $device = preg_split("/ /", $buf, 7);
	    if( isset( $device[6] ) && trim( $device[6] ) != "" ) {
		$results[$devnum++] = trim( $device[6] );
	    }
	}
    }
    return $results;
  }