major refactoring under the hood
[pharext/pharext] / src / pharext / Task / GitClone.php
diff --git a/src/pharext/Task/GitClone.php b/src/pharext/Task/GitClone.php
new file mode 100644 (file)
index 0000000..709a34a
--- /dev/null
@@ -0,0 +1,36 @@
+<?php
+
+namespace pharext\Task;
+
+use pharext\ExecCmd;
+use pharext\Task;
+use pharext\Tempdir;
+
+/**
+ * Clone a git repo
+ */
+class GitClone implements Task
+{
+       /**
+        * @var string
+        */
+       private $source;
+
+       /**
+        * @param string $source git repo location
+        */
+       public function __construct($source) {
+               $this->source = $source;
+       }
+
+       /**
+        * @param bool $verbose
+        * @return \pharext\Tempdir
+        */
+       public function run($verbose = false) {
+               $local = new Tempdir("gitclone");
+               $cmd = new ExecCmd("git", $verbose);
+               $cmd->run(["clone", $this->source, $local]);
+               return $local;
+       }
+}