00001 <?php
00011 $genpath = dirname(__FILE__);
00012 if(!file_exists('profiles/cmdline.php')) {
00013 die("Run this script from your top-level app directory (eg, /var/www/html/app)\n");
00014 }
00015 require_once('profiles/cmdline.php');
00016
00017 if($_SERVER['argc'] < 2) {
00018 echo "usage: php generate.php <module>\n\n";
00019 exit(0);
00020 }
00021
00022 $module_name = $_SERVER['argv'][1];
00023 $module_human_name = str_replace(' ','_',ucwords(str_replace('_',' ',$module_name)));
00024 $module_dir = DIR_FS_APP.DS.'modules'.DS.$module_name;
00025
00026 echo "Module: $module_name\n";
00027 echo "Path: $module_dir\n\n";
00028
00029 @mkdir($module_dir);
00030 foreach(array('config','models','pages','plugins','templates') as $dir) {
00031 @mkdir($module_dir.DS.$dir);
00032 }
00033 @mkdir($module_dir.DS.'plugins'.DS.'page');
00034 @mkdir($module_dir.DS.'plugins'.DS.'template');
00035 @mkdir($module_dir.DS.'config'.DS.'sql');
00036
00037 $keys = array('{{MODULE_NAME}}','{{MODULE_HUMAN_NAME}}');
00038 $vals = array($module_name, $module_human_name);
00039
00040 function generate($template, $dest, $keys, $vals)
00041 {
00042 if(file_exists($dest)) {
00043 echo "$dest already exists. Overwrite? [Y/n] ";
00044 $fp = fopen('php://stdin', 'r');
00045 $answer = trim(fgets($fp));
00046 fclose($fp);
00047 if(strcasecmp($answer,'Y') && $answer) return false;
00048 }
00049 $tmpl = implode('', file($template));
00050 $tmpl = str_replace($keys, $vals, $tmpl);
00051 $fp = fopen($dest, "w") or exit(1);
00052 fputs($fp, $tmpl);
00053 fclose($fp);
00054 return true;
00055 }
00056
00057 if(generate($genpath.'/templates/config.tpl.php', $module_dir.DS.'config'.DS.'config.php', $keys, $vals)) {
00058 echo "New Config: $module_dir".DS.'config'.DS."config.php\n";
00059 }
00060 if(generate($genpath.'/templates/urls.tpl.php', $module_dir.DS.'config'.DS.'urls.php', $keys, $vals)) {
00061 echo "New Config: $module_dir".DS.'config'.DS."urls.php\n";
00062 }
00063 if(generate($genpath.'/templates/page.tpl.php', $module_dir.DS.'pages'.DS.'page.php', $keys, $vals)) {
00064 echo "New Controller: $module_dir".DS.'pages'.DS."page.php\n";
00065 }
00066 echo "\n";
00067
00068 echo "To enable this module, add it to the MODULES constant in config/config.php\n\n";
00069 exit(0);
00070
00071 ?>