Beispiel #1
0
 public static function GetFiles($directory, $ignoreFiles = null, $ignoreMasks = null)
 {
     if (!is_dir($directory)) {
         return false;
     }
     $items = new \RecursiveDirectoryIterator($directory);
     $files = array();
     foreach (new \RecursiveIteratorIterator($items) as $filename => $current) {
         if (!is_dir($filename) && !in_array($current->GetFileName(), $ignoreFiles) && !\StringHelper::MaskCheck($filename, $ignoreMasks)) {
             $files[] = $filename;
         }
     }
     return $files;
 }
Beispiel #2
0
 private function ProcessSiteFolder($source, $dest, $folderPermissions, $filePermissions, $ignoreFiles = null, $ignoreMasks = null)
 {
     // Check for symlinks
     if (is_link($source)) {
         // No support for symlinks
         return true;
         //            return symlink(readlink($source), $dest);
     }
     // If it truly is a file
     if (is_file($source)) {
         // Check file is a Blueprint, ignore if it is and add it to the views, else copy it.
         $check = strpos(file_get_contents($source), TAG_START . TAG_BLUEPRINT);
         if ($check !== false) {
             $this->views[] = new View($this, $source);
             return true;
         }
         // Is this file a compress-ible file?
         if ($this->getGlobalCompression()) {
             // Copy / Return the already minimized versions of libraries
             if (strpos($source, ".min.") || strpos($source, "-min.")) {
                 Core::Output(INFO, "Not Compressing " . $source);
                 return copy($source, $dest);
             }
             switch (strtolower(pathinfo($dest, PATHINFO_EXTENSION))) {
                 case 'js':
                     $minifier = new Minify\JS($source);
                     Core::Output(INFO, "Compressing " . $source);
                     return file_put_contents($dest, $minifier->minify());
                 case 'css':
                     $minifier = new Minify\CSS($source);
                     Core::Output(INFO, "Compressing " . $source);
                     return file_put_contents($dest, $minifier->minify());
                 default:
                     return copy($source, $dest);
             }
         } else {
             return copy($source, $dest);
         }
     }
     // Make destination directory
     if (!is_dir($dest)) {
         mkdir($dest, $folderPermissions, true);
     }
     // Loop through the folder
     $dir = dir($source);
     while (false !== ($entry = $dir->read())) {
         // Skip pointers
         if ($entry == '.' || $entry == '..' || in_array($entry, $ignoreFiles) || \StringHelper::MaskCheck($entry, $ignoreMasks)) {
             continue;
         }
         // Deep copy directories
         $this->ProcessSiteFolder("{$source}/{$entry}", "{$dest}/{$entry}", $folderPermissions, $filePermissions, $ignoreFiles, $ignoreMasks);
     }
     // Clean up
     $dir->close();
     return true;
 }