mirror of
https://github.com/atlanticbiomedical/portal-legacy.git
synced 2025-07-02 01:47:28 -04:00
initial commit
This commit is contained in:
82
data/symfony/tasks/sfPakeEnvironment.php
Executable file
82
data/symfony/tasks/sfPakeEnvironment.php
Executable file
@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the symfony package.
|
||||
* (c) 2004-2006 Fabien Potencier <fabien.potencier@symfony-project.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
pake_desc('synchronise project with another machine');
|
||||
pake_task('sync', 'project_exists');
|
||||
|
||||
function run_sync($task, $args)
|
||||
{
|
||||
if (!count($args))
|
||||
{
|
||||
throw new Exception('You must provide an environment to synchronize.');
|
||||
}
|
||||
|
||||
$env = $args[0];
|
||||
|
||||
$dryrun = isset($args[1]) ? $args[1] : false;
|
||||
|
||||
if (!file_exists('config/rsync_exclude.txt'))
|
||||
{
|
||||
throw new Exception('You must create a rsync_exclude file for your project.');
|
||||
}
|
||||
|
||||
$host = $task->get_property('host', $env);
|
||||
$dir = $task->get_property('dir', $env);
|
||||
try
|
||||
{
|
||||
$user = $task->get_property('user', $env).'@';
|
||||
}
|
||||
catch (pakeException $e)
|
||||
{
|
||||
$user = '';
|
||||
}
|
||||
|
||||
if (substr($dir, -1) != '/')
|
||||
{
|
||||
$dir .= '/';
|
||||
}
|
||||
|
||||
$ssh = 'ssh';
|
||||
|
||||
try
|
||||
{
|
||||
$port = $task->get_property('port', $env);
|
||||
$ssh = '"ssh -p'.$port.'"';
|
||||
}
|
||||
catch (pakeException $e) {}
|
||||
|
||||
try
|
||||
{
|
||||
$parameters = $task->get_property('parameters', $env);
|
||||
}
|
||||
catch (pakeException $e)
|
||||
{
|
||||
$parameters = '-azC --force --delete';
|
||||
if (file_exists('config/rsync_exclude.txt'))
|
||||
{
|
||||
$parameters .= ' --exclude-from=config/rsync_exclude.txt';
|
||||
}
|
||||
|
||||
if (file_exists('config/rsync_include.txt'))
|
||||
{
|
||||
$parameters .= ' --include-from=config/rsync_include.txt';
|
||||
}
|
||||
|
||||
if (file_exists('config/rsync.txt'))
|
||||
{
|
||||
$parameters .= ' --files-from=config/rsync.txt';
|
||||
}
|
||||
}
|
||||
|
||||
$dry_run = ($dryrun == 'go' || $dryrun == 'ok') ? '' : '--dry-run';
|
||||
$cmd = "rsync --progress $dry_run $parameters -e $ssh ./ $user$host:$dir";
|
||||
|
||||
echo pake_sh($cmd);
|
||||
}
|
Reference in New Issue
Block a user