<pre>
------ USE Flags ------
<?PHP
ini_set 
('max_execution_time'60);

// Include the config
require_once('../include/config.inc.php');

$useflag_file $GLOBAL['portage_dir'].'/profiles/use.desc';
$local_useflag_file $GLOBAL['portage_dir'].'/profiles/use.local.desc';
$use = array();
$use_local = array();

$sql "SELECT ebuild_use FROM ebuild WHERE _removed IS NULL AND ebuild_use != '' ";
$results mysql_query($sql) or die(mysql_error());
while(
$row mysql_fetch_assoc($results)){
    
$flags_str $row['ebuild_use'];
    
$flags explode(' '$flags_str);
    foreach(
$flags as $value){
        if(
trim($value) != ''){
            if(isset(
$use[trim($value)])){
                
$use[trim($value)]['count'] ++;
            }else{
                
$use[trim($value)] = array(
                        
'flag' => trim($value),
                        
'count' => 1,
                        
'desc' => '',
                        
'type' => 0
                    
);
            }
        }
    }
            
}

//print_r($use);

// read the main file
$useflag_lines file($useflag_file);
foreach(
$useflag_lines as $line){
    if(
trim(substr($line,0,1)) != '' && substr($line,0,1) != '#'){
        
$flag trim(substr($line,0,strpos($line' ')));
        
$desc trim(ltrim(substr($line,strpos($line' ')+1), '-'));
        
        if(isset(
$use[trim($flag)])){
            
$use[trim($flag)]['desc'] = $desc;
            
$use[trim($flag)]['type'] = 1;
        }else{
            
$use[trim($flag)] = array(
                    
'flag' => trim($flag),
                    
'count' => 0,
                    
'desc' => $desc,
                    
'type' => 1
                
);
        }
    }
}

//print_r($use);

// local file
$local_useflag_lines file($local_useflag_file);
foreach(
$local_useflag_lines as $line){
    if(
trim(substr($line,0,1)) != '' && substr($line,0,1) != '#'){
        
// cat/pkg:use - desc
        
$flag trim(substr($line,strpos($line':')+1,strpos($line' ') - strpos($line':') - 1));
        
$desc trim(ltrim(substr($line,strpos($line' ')+1), '-'));
        
$pkg trim(substr($line,0,strpos($line':')));
        
        if(isset(
$use[trim($flag)]) && $use[trim($flag)]['desc'] != ''){
            
        }elseif(isset(
$use[trim($flag)])){
            
$use[trim($flag)]['desc'] = $desc;
            
$use[trim($flag)]['type'] = 2;
        }else{
            
$use[trim($flag)] = array(
                    
'flag' => trim($flag),
                    
'count' => 0,
                    
'desc' => $desc,
                    
'type' => 2
                
);
        }
        
        
$use_local[] = array( 
            
'flag' => $flag,
            
'desc' => $desc,
            
'pkg' => $pkg);
    }
}

//print_r($use);

// craft the sql
$sql "TRUNCATE use_flag";
mysql_query($sql) or die(mysql_error());

$sql "INSERT INTO use_flag (`use_flag`,`use_desc`,`use_type`,`pkg_count`) VALUES ";
foreach(
$use as $value){
    
$sql .= "('{$value['flag']}','".mysqlclean($value['desc'])."',{$value['type']},{$value['count']}),";
}
if(!
mysql_query(trim($sql', '))) echo mysql_error() . $sql;

// craft the sql for the local
$sql "TRUNCATE local_use_flag";
mysql_query($sql) or die(mysql_error());

$sql "INSERT INTO local_use_flag (`use_flag`,`use_desc`,`pkg_title`) VALUES ";
foreach(
$use_local as $value){
    
$sql .= "('{$value['flag']}','".mysqlclean($value['desc'])."','".mysqlclean($value['pkg'])."'),";
}
if(!
mysql_query(trim($sql', '))) echo mysql_error() . $sql;

?>
</pre>