/**
  * Initializes a new module in the current project directory
  *
  * @see "silversmith help"	 
  * @param The parameters, e.g. from the command line
  */
 public static function init_module($params = array())
 {
     if (!isset($params[2]) || empty($params[2])) {
         fail("Please specify a module name.");
     }
     $d = SilverSmithUtil::proper_form($params[2]);
     if (is_dir($d)) {
         fail("Module {$d} already exists.");
     }
     mkdir($d);
     say($d);
     mkdir("{$d}/code");
     say("{$d}/code");
     mkdir("{$d}/css");
     say("{$d}/css");
     mkdir("{$d}/javascript");
     say("{$d}/javascript");
     mkdir("{$d}/templates");
     say("{$d}/templates");
     mkdir("{$d}/templates/Layout");
     say("{$d}/templates/Layout");
     mkdir("{$d}/templates/Includes");
     say("{$d}/templates/Includes");
     $fh = fopen("{$d}/_config.php", "w");
     fwrite($fh, "<?php\n");
     fclose($fh);
     say("{$d}/_config.php");
     mkdir("{$d}/_config");
     say("{$d}/_config");
     $fh = fopen("{$d}/_config/_config.yml", "w");
     fwrite($fh, "---\nName: {$d}\nAfter: 'framework/*','cms/*'\n");
     fclose($fh);
     say("{$d}/_config/_config.yml");
 }
 /**
  * Singularize a string
  *
  * Note: English biased
  *
  * @param string The word to singularize
  * @return string
  */
 public static function singularize($str)
 {
     $name = SilverSmithUtil::proper_form($str);
     if (substr($name, -1, 3) == "ies") {
         return substr_replace($name, "y", -1, 3);
     } else {
         if (substr($name, -1, 1) == "s") {
             return substr_replace($name, "", -1, 3);
         }
     }
     return $str;
 }