Maslosoft Sprite API
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
<?php
/**
* This software package is licensed under AGPL or Commercial license.
*
* @package maslosoft/sprite
* @licence AGPL or Commercial
* @copyright Copyright (c) Piotr Masełkowski <pmaselkowski@gmail.com>
* @copyright Copyright (c) Maslosoft
* @copyright Copyright (c) Others as mentioned in code
* @link http://maslosoft.com/sprite/
*/
namespace Maslosoft\Sprite\Helpers;
use Maslosoft\Sprite\Models\Configuration;
use RuntimeException;
use UnexpectedValueException;
/**
* FolderChecker
*
* @author Piotr Maselkowski <pmaselkowski at gmail.com>
*/
class FolderChecker
{
public static function check(Configuration $config)
{
// Prepare folder
if (empty($config->runtimePath))
{
throw new UnexpectedValueException(sprintf('Property `runtimePath` of `%s` must be set and point to writeable directory', $config->runtimePath));
}
if (!is_writable($config->runtimePath))
{
throw new RuntimeException(sprintf('Runtime path `%s` is not writeable', $config->runtimePath));
}
if (empty($config->generatedPath))
{
throw new UnexpectedValueException(sprintf('Property `generatedPath` of `%s` must be set and point to writeable directory', $config->generatedPath));
}
if (!is_writable($config->generatedPath))
{
throw new RuntimeException(sprintf('Generated path `%s` is not writeable', $config->generatedPath));
}
// Check if base name contains path
$basename = $config->basename;
if (strpos($basename, '/') !== false || strpos($basename, '\\') !== false)
{
$pathname = sprintf('%s/%s', $config->generatedPath, dirname($basename));
if (!is_writable($pathname))
{
throw new RuntimeException(sprintf('Base name contains path `%s`, which is not writeable', $pathname));
}
}
}
}
API documentation generated by ApiGen