diff options
author | Rob Loach <robloach@gmail.com> | 2015-02-07 22:05:07 -0500 |
---|---|---|
committer | Rob Loach <robloach@gmail.com> | 2015-02-07 22:05:07 -0500 |
commit | bc0f13b93a3b20f1640c75c9f28fe77b5a4c89ca (patch) | |
tree | 3530b776e0b69f6d7449a46224f46487ca576578 /src/GitDeploy/GitDeploy.php | |
parent | 7ca89a5eb6c7993658c9efce339f6805a0ee8351 (diff) | |
download | git-deploy-bc0f13b93a3b20f1640c75c9f28fe77b5a4c89ca.zip git-deploy-bc0f13b93a3b20f1640c75c9f28fe77b5a4c89ca.tar.gz git-deploy-bc0f13b93a3b20f1640c75c9f28fe77b5a4c89ca.tar.bz2 |
Rename to Git Deploy0.0.4
Diffstat (limited to 'src/GitDeploy/GitDeploy.php')
-rw-r--r-- | src/GitDeploy/GitDeploy.php | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/GitDeploy/GitDeploy.php b/src/GitDeploy/GitDeploy.php new file mode 100644 index 0000000..d1c2cf6 --- /dev/null +++ b/src/GitDeploy/GitDeploy.php @@ -0,0 +1,60 @@ +<?php + +namespace GitDeploy; + +use GitWrapper\GitWrapper; +use GitWrapper\GitWorkingCopy; + +class GitDeploy +{ + protected $repositories; + + public function __construct($repositories = array()) + { + $this->repositories = $repositories; + } + + public static function fromFile($file = 'git-deploy.json') + { + $results = array(); + + if (is_file($file)) { + $contents = file_get_contents($file); + $results = json_decode($contents); + } + + return new GitDeploy($results); + } + + public function update() + { + // Create the wrapper. + $wrapper = new GitWrapper(); + $wrapper->streamOutput(); + + foreach ($this->repositories as $dir => $repo) { + // Build our git interface. + $git = null; + if (!is_dir($dir)) { + $git = $wrapper->cloneRepository($repo, $dir); + } + else { + $git = new GitWorkingCopy($wrapper, $dir); + } + + // Fetch all the latest. + $git->fetch('--all'); + + // Reset over to the gh-pages branch. + $git->reset('origin/gh-pages', array('hard' => true)); + + // Remove any extra files. + $git->clean('-d', '-f', '-x'); + } + } + + public function getRepositories() + { + return $this->repositories; + } +} |