aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Weiske <cweiske@cweiske.de>2012-03-26 21:59:07 +0200
committerChristian Weiske <cweiske@cweiske.de>2012-03-26 21:59:07 +0200
commite3757ad55ac7f161d4de11e38fb57166a8ee85f7 (patch)
tree0dbdb3871c7a233474517a97194f29b59a03a904 /src
parent5f427dd38c8d47711ea73015076bb390761e05dd (diff)
downloadphorkie-e3757ad55ac7f161d4de11e38fb57166a8ee85f7.tar.gz
phorkie-e3757ad55ac7f161d4de11e38fb57166a8ee85f7.zip
raw download support
Diffstat (limited to 'src')
-rw-r--r--src/Phorkie/File.php18
-rw-r--r--src/Phorkie/Repository.php13
2 files changed, 31 insertions, 0 deletions
diff --git a/src/Phorkie/File.php b/src/Phorkie/File.php
index f12d837..14a7bbf 100644
--- a/src/Phorkie/File.php
+++ b/src/Phorkie/File.php
@@ -17,6 +17,15 @@ class File
*/
public $repo;
+ public static $arMimeTypeMap = array(
+ 'css' => 'text/css',
+ 'htm' => 'text/html',
+ 'html' => 'text/html',
+ 'js' => 'application/javascript',
+ 'php' => 'text/x-php',
+ 'txt' => 'text/plain',
+ );
+
public function __construct($path, Repository $repo)
{
$this->path = $path;
@@ -48,6 +57,15 @@ class File
return file_get_contents($this->path);
}
+ public function getMimeType()
+ {
+ $type = $this->getType();
+ if (!isset(static::$arMimeTypeMap[$type])) {
+ return null;
+ }
+ return static::$arMimeTypeMap[$type];
+ }
+
/**
* Get a link to the file
*
diff --git a/src/Phorkie/Repository.php b/src/Phorkie/Repository.php
index ae01f6c..ebd420f 100644
--- a/src/Phorkie/Repository.php
+++ b/src/Phorkie/Repository.php
@@ -57,6 +57,19 @@ class Repository
return $arFiles;
}
+ public function getFileByName($name)
+ {
+ $base = basename($name);
+ if ($base != $name) {
+ throw new Exception('No directories supported for now');
+ }
+ $path = $this->repoDir . '/' . $base;
+ if (!is_readable($path)) {
+ throw new Exception_Input('File does not exist');
+ }
+ return new File($path, $this);
+ }
+
public function getDescription()
{
return file_get_contents($this->repoDir . '/.git/description');