Example #1
0
 private static function parse_package($base_dir, $name, &$tgz_filename)
 {
     $tgz_filename = File::absolute(self::$tgz_dir, $name . ".tgz");
     if (is_file($tgz_filename)) {
         return true;
     }
     $search_path = File::absolute($base_dir, $name);
     if (is_dir($search_path)) {
         $ignore = array("__\\w+__\\.php\$", "^work/", "^work\$");
         File::tgz($tgz_filename, $search_path, $search_path, null, $ignore);
         return true;
     } else {
         if (is_file($search_path . ".php")) {
             File::tgz($tgz_filename, $base_dir, $search_path . ".php");
             return true;
         }
     }
     return false;
 }
Example #2
0
 private static function parse_package($package_root_path, $base_dir, $package, &$tgz_filename)
 {
     $tgz_filename = File::absolute(self::$tgz_dir, str_replace("/", "_", $package) . ".tgz");
     if (is_file($tgz_filename)) {
         return true;
     }
     $package_name = basename($base_dir);
     $search_path = File::absolute($base_dir, preg_replace("/^" . $package_name . "\\//", "", $package));
     $base_name = basename($search_path);
     if (is_file($search_path . ".php")) {
         $isdir = is_dir($search_path);
         $tar = File::pack($base_dir, $search_path . ".php", $package_root_path, !$isdir);
         if ($isdir) {
             $tar .= File::pack($base_dir, $search_path, $package_root_path);
         } else {
             $parent_dir = basename(dirname($search_path));
             $parent_search = dirname(dirname($search_path)) . "/" . $parent_dir . ".php";
             if (is_file($parent_search)) {
                 $tar .= File::pack($base_dir, $parent_search, $package_root_path);
             }
         }
         File::gzwrite($tgz_filename, $tar);
         return true;
     } else {
         if (is_file($search_path . "/" . $base_name . ".php")) {
             File::tgz($tgz_filename, $base_dir, $search_path, $package_root_path);
             return true;
         }
     }
     return false;
 }
Example #3
0
 private static function app($repository)
 {
     if (!$repository->start("app")) {
         return;
     }
     if (is_dir(App::path("apps"))) {
         $list = array();
         foreach (File::dir(App::path("apps"), true) as $dir) {
             $bool = true;
             foreach ($list as $p) {
                 if (strpos($dir, $p) === 0) {
                     $bool = false;
                     break;
                 }
             }
             if ($bool) {
                 $package = str_replace(array(App::path("apps/"), "/"), array("", "."), $dir);
                 $info = App::info($dir);
                 if (!empty($info["name"])) {
                     $tgz_filename = $repository->tgz_path($package);
                     File::tgz($tgz_filename, $dir);
                     touch($tgz_filename, File::last_update($dir));
                     $repository->add($package, $info["name"], File::last_update($dir), $info["description"], $info["summary"]);
                     $list[] = $dir;
                 }
             }
         }
     }
 }