mirror of
https://github.com/hauke68/Magallanes.git
synced 2025-09-13 20:50:18 +02:00
Allow for changing permissions on local host too depending on the stage
This commit is contained in:
parent
8247b15ad0
commit
9d1e6aba6f
@ -5,7 +5,14 @@ use Mage\Task\AbstractTask;
|
|||||||
use Mage\Task\SkipException;
|
use Mage\Task\SkipException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Task for setting permissions on given paths.
|
* Task for setting permissions on given paths. Change will be done on local or
|
||||||
|
* remote host depending on the stage of the deployment.
|
||||||
|
*
|
||||||
|
* Usage :
|
||||||
|
* pre-deploy:
|
||||||
|
* - filesystem/permissions: {paths: /var/www/myapp/app/cache:/var/www/myapp/app/cache, checkPathsExist: true, owner: www-data, group: www-data, rights: 775}
|
||||||
|
* on-deploy:
|
||||||
|
* - filesystem/permissions: {paths: app/cache:app/logs, checkPathsExist: true, owner: www-data, group: www-data, rights: 775}
|
||||||
*
|
*
|
||||||
* @author Jérémy Huet <jeremy.huet@gmail.com>
|
* @author Jérémy Huet <jeremy.huet@gmail.com>
|
||||||
*/
|
*/
|
||||||
@ -14,12 +21,15 @@ class PermissionsTask extends AbstractTask
|
|||||||
/**
|
/**
|
||||||
* Paths to change of permissions separated by PATH_SEPARATOR.
|
* Paths to change of permissions separated by PATH_SEPARATOR.
|
||||||
*
|
*
|
||||||
|
* If the stage is on local host you should give full paths. If on remote
|
||||||
|
* you may give full or relative to the current release directory paths.
|
||||||
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $paths;
|
private $paths;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If set to true, will check existance of given paths on remote host and
|
* If set to true, will check existance of given paths on the host and
|
||||||
* throw SkipException if at least one does not exist.
|
* throw SkipException if at least one does not exist.
|
||||||
*
|
*
|
||||||
* @var boolean
|
* @var boolean
|
||||||
@ -105,7 +115,7 @@ class PermissionsTask extends AbstractTask
|
|||||||
$command .= 'chmod -R ' . $this->rights . ' ' . $this->getPathsForCmd() . ';';
|
$command .= 'chmod -R ' . $this->rights . ' ' . $this->getPathsForCmd() . ';';
|
||||||
}
|
}
|
||||||
|
|
||||||
$result = $this->runCommandRemote($command);
|
$result = $this->runCommand($command);
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
@ -126,7 +136,7 @@ class PermissionsTask extends AbstractTask
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set paths. Will check if they exist on remote host depending on
|
* Set paths. Will check if they exist on the host depending on
|
||||||
* checkPathsExist flag.
|
* checkPathsExist flag.
|
||||||
*
|
*
|
||||||
* @param array $paths
|
* @param array $paths
|
||||||
@ -142,8 +152,8 @@ class PermissionsTask extends AbstractTask
|
|||||||
}
|
}
|
||||||
|
|
||||||
$command = implode(' && ', $commands);
|
$command = implode(' && ', $commands);
|
||||||
if (! $this->runCommandRemote($command)) {
|
if (! $this->runCommand($command)) {
|
||||||
throw new SkipException('Make sure all paths given exist on remote host : ' . $this->getPathsForCmd($paths));
|
throw new SkipException('Make sure all paths given exist on the host : ' . $this->getPathsForCmd($paths));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,7 +194,7 @@ class PermissionsTask extends AbstractTask
|
|||||||
/**
|
/**
|
||||||
* Set owner.
|
* Set owner.
|
||||||
*
|
*
|
||||||
* @todo check existance of $owner on remote, might be different ways depending on OS.
|
* @todo check existance of $owner on host, might be different ways depending on OS.
|
||||||
*
|
*
|
||||||
* @param string $owner
|
* @param string $owner
|
||||||
* @return PermissionsTask
|
* @return PermissionsTask
|
||||||
@ -207,7 +217,7 @@ class PermissionsTask extends AbstractTask
|
|||||||
/**
|
/**
|
||||||
* Set group.
|
* Set group.
|
||||||
*
|
*
|
||||||
* @todo check existance of $group on remote, might be different ways depending on OS.
|
* @todo check existance of $group on host, might be different ways depending on OS.
|
||||||
*
|
*
|
||||||
* @param string $group
|
* @param string $group
|
||||||
* @return PermissionsTask
|
* @return PermissionsTask
|
||||||
@ -253,4 +263,4 @@ class PermissionsTask extends AbstractTask
|
|||||||
{
|
{
|
||||||
return $this->rights;
|
return $this->rights;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,12 @@ namespace Mage\Task\BuiltIn\Filesystem;
|
|||||||
/**
|
/**
|
||||||
* Task for giving Apache write permissions on given paths.
|
* Task for giving Apache write permissions on given paths.
|
||||||
*
|
*
|
||||||
|
* Usage :
|
||||||
|
* pre-deploy:
|
||||||
|
* - filesystem/permissions-writable-by-apache: {paths: /var/www/myapp/app/cache:/var/www/myapp/app/cache, checkPathsExist: true}
|
||||||
|
* on-deploy:
|
||||||
|
* - filesystem/permissions-writable-by-apache: {paths: app/cache:app/logs, checkPathsExist: true}
|
||||||
|
*
|
||||||
* @author Jérémy Huet <jeremy.huet@gmail.com>
|
* @author Jérémy Huet <jeremy.huet@gmail.com>
|
||||||
*/
|
*/
|
||||||
class PermissionsWritableByApacheTask extends PermissionsTask
|
class PermissionsWritableByApacheTask extends PermissionsTask
|
||||||
@ -23,4 +29,4 @@ class PermissionsWritableByApacheTask extends PermissionsTask
|
|||||||
{
|
{
|
||||||
return "Gives write permissions to Apache user for given paths [built-in]";
|
return "Gives write permissions to Apache user for given paths [built-in]";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user