aboutsummaryrefslogtreecommitdiff
path: root/src/phorkie/Repository/ConnectionInfo.php
diff options
context:
space:
mode:
authorChristian Weiske <cweiske@cweiske.de>2012-11-21 22:34:24 +0100
committerChristian Weiske <cweiske@cweiske.de>2012-11-21 22:34:24 +0100
commitba158e3ed03dec10e6654b0b0dd3710504bdf04d (patch)
tree80112971f0e3b6d5d1f1ec4ef28f2208b7ff1680 /src/phorkie/Repository/ConnectionInfo.php
parentd63a7b14a6e1140fe5aa0610b1490f69b3494623 (diff)
downloadphorkie-ba158e3ed03dec10e6654b0b0dd3710504bdf04d.tar.gz
phorkie-ba158e3ed03dec10e6654b0b0dd3710504bdf04d.zip
first work on Fork origin display; works for local forks
Diffstat (limited to 'src/phorkie/Repository/ConnectionInfo.php')
-rw-r--r--src/phorkie/Repository/ConnectionInfo.php42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/phorkie/Repository/ConnectionInfo.php b/src/phorkie/Repository/ConnectionInfo.php
new file mode 100644
index 0000000..3815856
--- /dev/null
+++ b/src/phorkie/Repository/ConnectionInfo.php
@@ -0,0 +1,42 @@
+<?php
+namespace phorkie;
+
+class Repository_ConnectionInfo
+{
+ protected $arConfig;
+ protected $repo;
+
+
+ public function __construct(Repository $repo)
+ {
+ $this->repo = $repo;
+ $this->arConfig = parse_ini_file($this->repo->gitDir . '/config', true);
+ }
+
+ public function isFork()
+ {
+ return $this->getOrigin() !== null;
+ }
+
+
+ public function getOrigin()
+ {
+ return $this->getRemote('origin');
+ }
+
+ /**
+ * @return Repository_Remote|null NULL if the remote does not exist, array
+ * with repository information otherwise
+ */
+ public function getRemote($name)
+ {
+ if (!isset($this->arConfig['remote ' . $name])) {
+ return null;
+ }
+ return new Repository_Remote($name, $this->arConfig['remote ' . $name]);
+ }
+
+}
+
+
+?>