diff --git a/lessc.inc.php b/lessc.inc.php index 47796ad0..df7caec1 100644 --- a/lessc.inc.php +++ b/lessc.inc.php @@ -1823,6 +1823,7 @@ protected function addParsedFile($file) { public static function ccompile($in, $out) { if (!is_file($out) || filemtime($in) > filemtime($out)) { $less = new lessc($in); + self::createPath($out); file_put_contents($out, $less->parse()); return true; } @@ -1830,6 +1831,22 @@ public static function ccompile($in, $out) { return false; } + // ensures that a path exists (creates it if not) + // ignores a file at the end if there is one - only creates directories + private static function createPath($path) { + $parts = explode('/',$path); + $dirs = array_slice($parts, 0, count($parts)-1); + + $curdir = ''; + foreach($dirs as $dir) { + $curdir .= $dir.'/'; + + if(!file_exists($curdir)) { + mkdir($curdir); + } + } + } + /** * Execute lessphp on a .less file or a lessphp cache structure *