#!/usr/bin/php rowCount()) break; else { $r=query('UPDATE `builds` SET `backend`="'.$S['conf']['backend_id'].'" WHERE `status`="queued" AND `backend` IS NULL ORDER BY `ctime` ASC LIMIT 1'); if ($r->rowCount() == 0) sleep(5); } } $build=new sql_build($r->fetch(PDO::FETCH_ASSOC)); debug('Starting build id='.$build->id); $file=null; $owner=$build->get_owner(); $workdir=WORK."/$build->id"; if ($build->status == 'cancel') { shell_exec('rm -rf '.escapeshellarg($workdir)); $build->status='canceled'; $build->write(); continue; } if (isset($build->finish)) $build->finish=null; elseif (!isset($build->start)) $build->start=time(); $build->write(); $success=$imagedir=$build->build($workdir); if ($success && !$build->is_canceled()) { $success=$file=$build->bundle($imagedir, $workdir); if ($success && !$build->is_canceled()) { $success=$build->upload($file); } } if ($success) { debug("Completed build successfully"); execute_non_vital_command('Delete work directory', 'rm -rf '.escapeshellarg($workdir)); $build->status='complete'; } $build->finish=time(); $build->write(); debug('Finished with build id='.$build->id); xhtmlemail('"'.$owner->name.'" <'.$owner->email.'>', null, $S['conf']['title'].' build finished', 'Your build has '.($success?'completed successfully':'failed').'. You can find more information and download the completed image at id").'">'.url("build/$build->id").''); unset($build); } ?>