public function comment() { $cache_key = array('commit_comment', $this->revision); if (Store::has($cache_key)) { return Store::get($cache_key); } $log = Subversion::cmd('log', array(OpenpearConfig::svn_root()), array('revision' => $this->revision, 'limit' => 1)); $log = array_shift($log); Store::set($cache_key, $log['msg']); return $log['msg']; }
public function create() { try { Subversion::cmd('import', array(OpenpearConfig::svn_skeleton(work_path('skeleton')), File::absolute(OpenpearConfig::svn_root(), $this->package()->name())), array('message' => sprintf('[New Package] %s (@%s)', $this->package()->name(), $this->maintainer()->name()), 'username' => OpenpearConfig::system_user('openpear'))); // $message = new OpenpearMessage(); // $message->subject('New Package is ready for your commit!'); $this->delete(); C($this)->commit(); } catch (Exception $e) { Log::error($e->getMessage()); $this->trial_count += 1; $this->save(); C($this)->commit(); } }
public function check_repo_exists() { $this->login_required(); try { $package = OpenpearPackage::get_package($this->in_vars('package_id')); $info = Subversion::cmd('info', array(File::absolute(OpenpearConfig::svn_root(), implode('/', array($package->name(), 'trunk', $this->in_vars('dir', '')))))); if (isset($info['kind']) && $info['kind'] == 'dir') { echo 'ok'; } else { throw new RuntimeException('directory is not found'); } } catch (Exception $e) { Log::debug($e); echo 'ng'; } exit; }
/** * SVNからログを取得 * @param array $info * @return array */ public static function format_info(array $info) { // TODO 仕様の確認 // TODO Subversion::cmdの実装 $log = Subversion::cmd('log', array($info['url']), array('limit' => 1)); $info['recent'] = array_shift($log); try { $info['recent']['maintainer'] = C(OpenpearMaintainer)->find_get(Q::eq('name', $info['recent']['author'])); } catch (NotfoundDaoException $e) { // FIXME $info['recent']['maintainer'] = new OpenpearMaintainer(); } return $info; }
public final function svn_log_msg($revision) { $log = Subversion::cmd('log', array(OpenpearConfig::svn_root()), array('revision' => $revision)); return (string) $log[0]['msg']; }