Example #1
0
 public function run($args)
 {
     $project = FWS_Props::get()->project();
     $options = new PC_Engine_Options();
     foreach ($project->get_project_deps() as $pid) {
         $options->add_project($pid);
     }
     $env = new PC_Engine_Env($options);
     $tscanner = new PC_Engine_TypeScannerFrontend($env);
     $msgs = array();
     foreach ($args as $file) {
         try {
             $tscanner->scan_file($file);
         } catch (PC_Engine_Exception $e) {
             $msgs[] = $e->__toString();
         }
     }
     foreach ($env->get_types()->get_classes() as $class) {
         PC_DAO::get_classes()->create($class);
     }
     foreach ($env->get_types()->get_constants() as $const) {
         PC_DAO::get_constants()->create($const);
     }
     foreach ($env->get_types()->get_functions() as $func) {
         PC_DAO::get_functions()->create($func);
     }
     foreach ($env->get_errors()->get() as $err) {
         PC_DAO::get_errors()->create($err);
     }
     // write msgs to shared data
     $mutex = new FWS_MutexFile(PC_CLI_MUTEX_FILE);
     $mutex->aquire();
     $data = unserialize($mutex->read());
     /* @var $data PC_JobData */
     $data->add_errors($msgs);
     $mutex->write(serialize($data));
     $mutex->close();
 }