[cvs] [Wiki] changed: CreatingYourFirstModule

Wiki Guest wikiguest at horde.org
Fri Feb 6 19:53:43 UTC 2009


guest [129.187.43.121]  Fri, 06 Feb 2009 14:53:43 -0500

Modified page: http://wiki.horde.org/CreatingYourFirstModule
New Revision:  1.1
Change log:  Rename-Script updated

@@ -11,41 +11,87 @@

  2. Create the following script as prjrename.php - save it somewhere  
sensible, like your home directory:

  <code type="php">
-<?php
+#!/usr/bin/php -q
+<?
+function analysedir( $path_, $list_ )
+{
+  // Verzeichnis lesen
+  //echo "Path: $path_nn";
+  $handle = opendir($path_);
+  while (false !== ($file = readdir($handle)))
+  {
+    if( $file!='.' && $file!='..')
+    {
+        $file = $path_ . DIRECTORY_SEPARATOR . $file;
+        //echo "$filen";
+
+        if( !is_dir( $file ) )  // Wenn Datei: Anhängen
+        {
+          $list_[count($list_)]=$file;
+        }
+        else   // Wenn Ordner: Rekursiv untersuchen
+        {
+          $list_ += analysedir($file, $list_ );
+        }
+   }
+ }      // While ENDE
+ return $list_;
+}
+
+function substitute_skeleton( $filename, $modulname )
+{

-if (count($_SERVER['argv'])==3) {

-  $prjUC=strtoupper(trim($_SERVER['argv'][2]));
+  $prjUC=strtoupper(trim($modulname));
    $prjLC=strtolower($prjUC);
    $prjMC=substr($prjUC, 0, 1) . substr($prjLC, 1, strlen($prjLC)-1);

-  $filehandle=fopen(trim($_SERVER['argv'][1]), 'r');
-  $file=fread($filehandle, filesize($_SERVER['argv'][1]));
+  $filehandle=fopen(trim($filename), 'r');
+  $file=fread($filehandle, filesize($filename));
    fclose($filehandle);
    $newfile=str_replace(array('SKELETON', 'Skeleton', 'skeleton'),  
array($prjUC, $prjMC, $prjLC), $file);
-  $filehandle=fopen(trim($_SERVER['argv'][1]), 'w');
+  $filehandle=fopen(trim($filename), 'w');
    fwrite($filehandle, $newfile);
    fclose($filehandle);
-} else {
-  help();
  }

-function help() {
-  echo "php prjrename.php [filename] [string]
-filename = The file to update
-string = the name of the file to replace
-";
+function help()
+{
+  echo "projectrename.php </path/to/skeleton-folder/> <modulname>n";
  }

+//
+// ------------------- Main-Code --------------------
+//
+
+if (count($_SERVER['argv'])==3)
+{
+  // Preparation
+  $list = array();
+  $path = trim($_SERVER[argv][1]);
+  $modul = trim($_SERVER[argv][2]);
+
+  // Fetch Filelist
+  $list = analysedir( $path, $list );
+
+  // Modify each File
+  foreach( $list as $file )
+  {
+        //echo $modul.": ".$file."n";
+        substitute_skeleton( $file, $modul );
+  }
+}
+else
+  help();
  ?>
  </code>

-3. On a unix system, use the following command to replace all  
skeleton strings with your project name (I don't think there's an  
appropriate command for windows, unless you've got cygwin):
+3. On a unix system, use the following command to replace all  
skeleton strings with your project name (Not tested on Windows, but  
should work):

  <code type="sh">
-find /path/to/skeleton/export -type f -exec php -q  
/path/to/prjrename.php '{}' modulename
+projectrename.php /path/to/skeleton/Checkout/ modulname
  </code>

  4. Perform some file modifications:



More information about the cvs mailing list