mirror of https://github.com/hauke68/Magallanes
Andrés Montañez
11 years ago
3 changed files with 143 additions and 0 deletions
@ -0,0 +1,40 @@ |
|||||||
|
<?php |
||||||
|
namespace Mage\Task\BuiltIn\Composer; |
||||||
|
|
||||||
|
use Exception; |
||||||
|
use Mage\Task\AbstractTask; |
||||||
|
use Mage\Task\ErrorWithMessageException; |
||||||
|
use Mage\Task\SkipException; |
||||||
|
|
||||||
|
class GenerateAutoload extends AbstractTask |
||||||
|
{ |
||||||
|
/** |
||||||
|
* Returns the Title of the Task |
||||||
|
* @return string |
||||||
|
*/ |
||||||
|
public function getName() |
||||||
|
{ |
||||||
|
return 'Generating autoload files via composer [built-in]'; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Runs the task |
||||||
|
* |
||||||
|
* @return boolean |
||||||
|
* @throws Exception |
||||||
|
* @throws ErrorWithMessageException |
||||||
|
* @throws SkipException |
||||||
|
*/ |
||||||
|
public function run() |
||||||
|
{ |
||||||
|
$releasesDirectory = $this->getConfig()->release('directory', 'releases'); |
||||||
|
$releasesDirectory = rtrim($this->getConfig()->deployment('to'), '/') . '/' . $releasesDirectory; |
||||||
|
$currentCopy = $releasesDirectory . '/' . $this->getConfig()->getReleaseId(); |
||||||
|
|
||||||
|
$sharedFolderName = $this->getParameter('shared', 'shared'); |
||||||
|
$sharedFolderName = rtrim($this->getConfig()->deployment('to'), '/') . '/' . $sharedFolderName; |
||||||
|
|
||||||
|
$composerPath = $this->getParameter('composer', "$sharedFolderName/composer.phar"); |
||||||
|
return $this->runCommandRemote("/usr/bin/env php $composerPath --working-dir=$currentCopy dumpautoload --optimize", $output); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,50 @@ |
|||||||
|
<?php |
||||||
|
namespace Mage\Task\BuiltIn\Filesysten; |
||||||
|
|
||||||
|
use Exception; |
||||||
|
use Mage\Task\AbstractTask; |
||||||
|
use Mage\Task\ErrorWithMessageException; |
||||||
|
use Mage\Task\SkipException; |
||||||
|
use Mage\Task\Releases\IsReleaseAware; |
||||||
|
|
||||||
|
class ApplyFacls extends AbstractTask implements IsReleaseAware |
||||||
|
{ |
||||||
|
/** |
||||||
|
* Returns the Title of the Task |
||||||
|
* @return string |
||||||
|
*/ |
||||||
|
public function getName() |
||||||
|
{ |
||||||
|
return 'Set file ACLs on remote system [built-in]'; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Runs the task |
||||||
|
* |
||||||
|
* @return boolean |
||||||
|
* @throws Exception |
||||||
|
* @throws ErrorWithMessageException |
||||||
|
* @throws SkipException |
||||||
|
*/ |
||||||
|
public function run() |
||||||
|
{ |
||||||
|
$releasesDirectory = $this->getConfig()->release('directory', 'releases'); |
||||||
|
$releasesDirectory = rtrim($this->getConfig()->deployment('to'), '/') . '/' . $releasesDirectory; |
||||||
|
$currentCopy = $releasesDirectory . '/' . $this->getConfig()->getReleaseId(); |
||||||
|
|
||||||
|
|
||||||
|
$aclParam = $this->getParameter('acl_param', ''); |
||||||
|
if (empty($aclParam)) { |
||||||
|
throw new SkipException('Parameter acl_param not set.'); |
||||||
|
} |
||||||
|
|
||||||
|
$folders = $this->getParameter('folders', []); |
||||||
|
$recursive = $this->getParameter('recursive', false) ? ' -R ' : ' '; |
||||||
|
|
||||||
|
foreach ($folders as $folder) { |
||||||
|
$this->runCommandRemote("setfacl$recursive-m $aclParam $currentCopy/$folder", $output); |
||||||
|
} |
||||||
|
|
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,53 @@ |
|||||||
|
<?php |
||||||
|
namespace Mage\Task\BuiltIn\Filesysten; |
||||||
|
use Mage\Task\AbstractTask; |
||||||
|
use Mage\Task\Releases\IsReleaseAware; |
||||||
|
use Mage\Task\SkipException; |
||||||
|
|
||||||
|
class LinkSharedFiles extends AbstractTask implements IsReleaseAware |
||||||
|
{ |
||||||
|
|
||||||
|
/** |
||||||
|
* Returns the Title of the Task |
||||||
|
* @return string |
||||||
|
*/ |
||||||
|
public function getName() |
||||||
|
{ |
||||||
|
return 'Linking files/folders from the shared folder into the current release [built-in]'; |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Runs the task |
||||||
|
* |
||||||
|
* @return boolean |
||||||
|
* @throws Exception |
||||||
|
* @throws \Mage\Task\ErrorWithMessageException |
||||||
|
* @throws SkipException |
||||||
|
*/ |
||||||
|
public function run() |
||||||
|
{ |
||||||
|
$linkedFiles = $this->getParameter('linked_files', []); |
||||||
|
$linkedFolders = $this->getParameter('linked_folders', []); |
||||||
|
if (sizeof($linkedFiles) == 0 && sizeof($linkedFolders) == 0) { |
||||||
|
throw new SkipException('No files and folders configured for sym-linking.'); |
||||||
|
} |
||||||
|
|
||||||
|
$sharedFolderName = $this->getParameter('shared', 'shared'); |
||||||
|
$sharedFolderName = rtrim($this->getConfig()->deployment('to'), '/') . '/' . $sharedFolderName; |
||||||
|
$releasesDirectory = $this->getConfig()->release('directory', 'releases'); |
||||||
|
$releasesDirectory = rtrim($this->getConfig()->deployment('to'), '/') . '/' . $releasesDirectory; |
||||||
|
|
||||||
|
$currentCopy = $releasesDirectory . '/' . $this->getConfig()->getReleaseId(); |
||||||
|
foreach ($linkedFolders as $folder) { |
||||||
|
$command = "ln -nfs $sharedFolderName/$folder $currentCopy/$folder"; |
||||||
|
$this->runCommandRemote($command); |
||||||
|
} |
||||||
|
|
||||||
|
foreach ($linkedFiles as $folder) { |
||||||
|
$command = "ln -nfs $sharedFolderName/$folder $currentCopy/$folder"; |
||||||
|
$this->runCommandRemote($command); |
||||||
|
} |
||||||
|
|
||||||
|
return true; |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue