git.cweiske.de
/
phorkie.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Implement request #12: DOAP documents for all pastes
[phorkie.git]
/
src
/
phorkie
/
Repository.php
diff --git
a/src/phorkie/Repository.php
b/src/phorkie/Repository.php
index 6c71b4733006130fa06b915f7ddcec75001c3887..46b2f6526fa4d2ee083a6e541141361ce638a436 100644
(file)
--- a/
src/phorkie/Repository.php
+++ b/
src/phorkie/Repository.php
@@
-118,6
+118,16
@@
class Repository
* @return File[] Array of files
*/
public function getFiles()
* @return File[] Array of files
*/
public function getFiles()
+ {
+ $files = $this->getFilePaths();
+ $arFiles = array();
+ foreach ($files as $name) {
+ $arFiles[] = new File($name, $this);
+ }
+ return $arFiles;
+ }
+
+ protected function getFilePaths()
{
if ($this->hash === null) {
$hash = 'HEAD';
{
if ($this->hash === null) {
$hash = 'HEAD';
@@
-129,28
+139,23
@@
class Repository
->setOption('name-only')
->addArgument($hash)
->execute();
->setOption('name-only')
->addArgument($hash)
->execute();
- $files = explode("\n", trim($output));
- $arFiles = array();
- foreach ($files as $name) {
- $arFiles[] = new File($name, $this);
- }
- return $arFiles;
+ return explode("\n", trim($output));
}
public function getFileByName($name, $bHasToExist = true)
{
}
public function getFileByName($name, $bHasToExist = true)
{
- $base = basename($name);
- if ($base != $name) {
- throw new Exception('No directories supported for now');
- }
+ $name = Tools::sanitizeFilename($name);
if ($name == '') {
throw new Exception_Input('Empty file name given');
}
if ($name == '') {
throw new Exception_Input('Empty file name given');
}
- $fullpath = $this->workDir . '/' . $base;
- if ($bHasToExist && !is_readable($fullpath)) {
- throw new Exception_Input('File does not exist');
+
+ if ($bHasToExist) {
+ $files = $this->getFilePaths();
+ if (array_search($name, $files) === false) {
+ throw new Exception_Input('File does not exist');
+ }
}
}
- return new File($
bas
e, $this);
+ return new File($
nam
e, $this);
}
public function hasFile($name)
}
public function hasFile($name)
@@
-171,10
+176,23
@@
class Repository
*/
public function delete()
{
*/
public function delete()
{
+ $db = new Database();
+ $db->getIndexer()->deleteRepo($this);
+
return Tools::recursiveDelete($this->workDir)
&& Tools::recursiveDelete($this->gitDir);
}
return Tools::recursiveDelete($this->workDir)
&& Tools::recursiveDelete($this->gitDir);
}
+ public function getTitle()
+ {
+ $desc = $this->getDescription();
+ if (trim($desc) != '') {
+ return $desc;
+ }
+
+ return 'paste #' . $this->id;
+ }
+
public function getDescription()
{
if (!is_readable($this->gitDir . '/description')) {
public function getDescription()
{
if (!is_readable($this->gitDir . '/description')) {
@@
-210,6
+228,8
@@
class Repository
return '/' . $this->id;
} else if ($type == 'fork') {
return '/' . $this->id . '/fork';
return '/' . $this->id;
} else if ($type == 'fork') {
return '/' . $this->id . '/fork';
+ } else if ($type == 'doap') {
+ return '/' . $this->id . '/doap';
} else if ($type == 'delete') {
return '/' . $this->id . '/delete';
} else if ($type == 'delete-confirm') {
} else if ($type == 'delete') {
return '/' . $this->id . '/delete';
} else if ($type == 'delete-confirm') {
@@
-264,7
+284,9
@@
class Repository
$arLineParts = explode(' ', trim($arOutput[$current + 4]));
$commit->filesChanged = $arLineParts[0];
$commit->linesAdded = $arLineParts[3];
$arLineParts = explode(' ', trim($arOutput[$current + 4]));
$commit->filesChanged = $arLineParts[0];
$commit->linesAdded = $arLineParts[3];
- $commit->linesDeleted = $arLineParts[5];
+ if (isset($arLineParts[5])) {
+ $commit->linesDeleted = $arLineParts[5];
+ }
$current += 6;
$current += 6;