]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-15249 improving cli installer
authorskodak <skodak>
Sun, 15 Jun 2008 12:23:53 +0000 (12:23 +0000)
committerskodak <skodak>
Sun, 15 Jun 2008 12:23:53 +0000 (12:23 +0000)
admin/cliupgrade.php
install.php
lib/clilib.php [new file with mode: 0644]
lib/installlib.php

index fb36a2a75ccc0baad5cfcd030619779d60a6abd5..5cfa8fc21d7377c7a62f7ec3ba773d4a1e6b8feb 100644 (file)
@@ -120,20 +120,17 @@ $COURSE->id                 = 0;
 
 // include standard Moodle libraries
 
-require_once($CFG->libdir.'/adminlib.php');
+require_once($CFG->libdir.'/installlib.php');
+require_once($CFG->libdir.'/clilib.php');           //cli-library
 require_once($CFG->libdir.'/setuplib.php');
+require_once($CFG->libdir.'/adminlib.php');
 require_once($CFG->libdir.'/moodlelib.php');
 require_once($CFG->libdir.'/weblib.php');
-require_once($CFG->libdir.'/adodb/adodb.inc.php');
 require_once($CFG->libdir.'/environmentlib.php');
-require_once($CFG->libdir.'/xmlize.php');
 require_once($CFG->libdir.'/componentlib.class.php');
-require_once($CFG->libdir.'/installlib.php');                  //cli-library
 require_once($CFG->dirroot.'/version.php');
 
-//include PEAR Console libraries
-set_include_path($CFG->libdir . PATH_SEPARATOR . $CFG->libdir . '/pear/');
-require_once('Console/Getopt.php');
+error('TODO fix CLI installer'); //TODO: fix cli installer
 
 
 /// Set default values - things that require the libraries
@@ -464,7 +461,6 @@ if (!file_exists(dirname(dirname(__FILE__)) . '/config.php')) {
         $errormsg = get_string('dbwronghostserver', 'install');
     }
 
-error('fix cml installer'); //TODO: fix cli installer
     if (empty($errormsg)) {
 
         /// Have the $db object ready because we are going to use it often
index ab7ed08b0b750fcdbe63fe298d648b30ecc5b3b4..55ad1b25b99f05ea7b8aa5f74bc58ca34bf3d4db 100644 (file)
@@ -146,6 +146,7 @@ $COURSE->id = 0;
 /// Include some moodle libraries
 
 require_once($CFG->libdir.'/setuplib.php');
+require_once($CFG->libdir.'/installlib.php');
 require_once($CFG->libdir.'/weblib.php');
 require_once($CFG->libdir.'/deprecatedlib.php');
 require_once($CFG->libdir.'/moodlelib.php');
@@ -945,74 +946,6 @@ function print_install_help($help) {
     }
 }
 
-
-//==========================================================================//
-
-function get_memory_limit() {
-    if ($limit = ini_get('memory_limit')) {
-        return $limit;
-    } else {
-        return get_cfg_var('memory_limit');
-    }
-}
-
-//==========================================================================//
-
-function check_memory_limit() {
-
-    /// if limit is already 40 or more then we don't care if we can change it or not
-    if ((int)str_replace('M', '', get_memory_limit()) >= 40) {
-        return true;
-    }
-
-    /// Otherwise, see if we can change it ourselves
-    @ini_set('memory_limit', '40M');
-    return ((int)str_replace('M', '', get_memory_limit()) >= 40);
-}
-
-//==========================================================================//
-
-function inst_check_php_version() {
-    return check_php_version("5.2.0");
-}
-//==========================================================================//
-
-/* This function returns a list of languages and their full names. The
- * list of available languages is fetched from install/lang/xx/installer.php
- * and it's used exclusively by the installation process
- * @return array An associative array with contents in the form of LanguageCode => LanguageName
- */
-function get_installer_list_of_languages() {
-
-    global $CFG;
-
-    $languages = array();
-
-/// Get raw list of lang directories
-    $langdirs = get_list_of_plugins('install/lang');
-    asort($langdirs);
-/// Get some info from each lang
-    foreach ($langdirs as $lang) {
-        if (file_exists($CFG->dirroot .'/install/lang/'. $lang .'/installer.php')) {
-            include($CFG->dirroot .'/install/lang/'. $lang .'/installer.php');
-            if (substr($lang, -5) == '_utf8') {   //Remove the _utf8 suffix from the lang to show
-                $shortlang = substr($lang, 0, -5);
-            } else {
-                $shortlang = $lang;
-            }
-            if ($lang == 'en') {  //Explain this is non-utf8 en
-                $shortlang = 'non-utf8 en';
-            }
-            if (!empty($string['thislanguage'])) {
-                $languages[$lang] = $string['thislanguage'] .' ('. $shortlang .')';
-            }
-            unset($string);
-        }
-    }
-/// Return array
-    return $languages;
-}
-
 //==========================================================================//
 
 function css_styles($databases) {
@@ -1241,12 +1174,4 @@ function toggledbinfo() {
 <?php
 }
 
-/**
- * Add slashes for single quotes and backslashes
- * so they can be included in single quoted string
- * (for config.php)
- */
-function addsingleslashes($input){
-    return preg_replace("/(['\\\])/", "\\\\$1", $input);
-}
 ?>
diff --git a/lib/clilib.php b/lib/clilib.php
new file mode 100644 (file)
index 0000000..3467d0c
--- /dev/null
@@ -0,0 +1,563 @@
+<?php  //$Id$
+/**
+ * CLI support functions
+ * @author Dilan
+ */
+
+//include PEAR Console libraries
+set_include_path($CFG->libdir . PATH_SEPARATOR . $CFG->libdir . '/pear/');
+require_once('Console/Getopt.php');
+
+/**
+ * Check the validity of the language
+ * return true or false
+ *
+ * @param string $lang (short code for language)
+ * @return true/false
+ */
+function valid_language($lang) {
+    global $DEFAULT;
+    $langdir = dir($DEFAULT['dirroot'].'/install/lang');
+    $i=0;
+    $validllangs = array();
+
+    while (false !== ($file=$langdir->read())) {
+        if ($file[0] != '.' ) {
+            $validllangs[$i++]=$file;
+        }
+    }
+    if (in_array($lang,$validllangs)) {
+        return true;
+    } else {
+        return false;
+    }
+}
+//========================================================================================//
+/**
+ * Read from array of language strings and return a array of string elements in which 
+ * both values and keys are set to input array's key 
+ *
+ * @param array $lang string elements
+ * @return array of string element
+ */
+function get_short_codes ($lang = array()) {
+    $short_codes = array();
+
+    foreach ($lang as $key => $value) {
+        $short_codes[$key] = $key;
+    }
+    return  $short_codes;
+}
+//========================================================================================//
+/**
+ * Check value for valid yes/no argument
+ * Return true or false
+ *
+ * @param string $value
+ * @return true/false
+ */
+function valid_yes_no($value){
+    $valid=array('yes','y','n','no');
+    $value=strtolower($value);
+
+    if (in_array($value,$valid)) {
+        if ($value[0]=='y') {
+            return true;
+        } else if ($value[0]=='n') {
+            return true;
+        }
+    } else {
+        return false;
+    }
+}
+//========================================================================================//
+/**
+ * Can value have a valid integer in the given range
+ * Return true or false
+ * @link valid_param()
+ *
+ * 
+ * @param mixedtype $value
+ * @param int $start
+ * @param int $end
+ * @return true/false
+ */
+function valid_int_range($value,$start,$end) {
+    if (valid_param($value,PARAM_INT)) {
+        if ($value < $end && $value > $start) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+}
+
+/**
+ * Take a value and and check it with the given set of values
+ * If value if found in the set return true. False otherwise
+ *
+ * @param mixed type $value
+ * @param array  $set of valid elements
+ * @return boolean
+ */
+
+function valid_element($value,$set) {
+    if(!empty($set)) {
+        //convert all the elements from set to lower case
+        foreach ($set as $key=>$opt) {
+            $set[$key]=strtolower($opt);
+        }
+        $value=strtolower($value);
+        if (in_array($value,$set)) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+}
+
+/**
+ * Take a value and Type of the value 
+ * If value match the type return true, false otherwise
+ * uses {@link clean_param()} in moodlelib.php
+ * @param mixedtype $value
+ * @param int $type
+ * @return boolean
+ */
+function valid_param($value,$type){
+    $clean_val = clean_param($value,$type);
+    if ($clean_val == $value) {
+        return true;
+    }else {
+        return false;
+    }
+}
+//========================================================================================//
+/**
+ * Creat long arument list for PEAR method invocation using LONGOPTOIN array
+ *
+ * @param long option array $long_opt
+ * @return PEAR method compatible long option array 
+ */
+function create_long_options($long_opt) {
+    $opt=array();
+    $i=0;
+    if (is_array($long_opt)) {
+        foreach ($long_opt as $key=>$value) {
+            if ($value == CLI_VAL_REQ) {
+                $opt[$i++]=$key.'=';
+            } else if ($value == CLI_VAL_OPT) {
+                $opt[$i++]=$key.'==';
+            }
+
+        }
+    }
+    return $opt;
+}
+//========================================================================================//
+/**
+ * This funtion return an array of options with option as key containing the value of 
+ * respective option
+ *
+ * @param array of option arguments as defined by PEAR GetOpt calss $opt
+ * @return return a options arguments with options as keys and values as respective value for key
+ */
+function get_options($opt=array()) {
+
+    global $LONG_OPTIONS;
+    $ret_arr=array();
+
+    //get the options from the defined list of arguments
+    if (!empty($opt[0]) && is_array($opt[0])) {
+
+        foreach ($opt[0] as $key=>$value) {
+
+            if (substr($value[0],0,2)=='--') {          //if the argument is a long option
+                $input_option=substr($value[0],2);
+            } else if (substr($value[0],0,1)=='-'){     //if the argument is a short option
+                $input_option=substr($value[0],1);
+            }
+
+            //check with valid set of options
+            if (in_array($input_option,$LONG_OPTIONS)) {
+                $ret_arr[$input_option]=$value[1];
+            }
+        }
+
+    }
+    //return array
+    return $ret_arr;
+
+}
+
+//========================================================================================//
+
+//=========================================================================//
+/**
+ * Validate options values 
+ *
+ * @param array $options
+ */
+function validate_option_values($options){
+    $values=array();
+    $i=0;
+    foreach ($options as $val) {
+        $values[$i++]=$val;
+    }
+    if (isset($values['lang'])) {
+        if (!valid_language($values['lang'])) {
+            console_write(STDERR,'invalidvalueforlanguage');
+        console_write(STDOUT, "\n", '', false);
+        }
+    }
+    if (isset($values['webdir'])) {
+        /**
+         * @todo check valid directory path
+         */
+    }
+    if (isset($values['webaddr'])) {
+        /**
+         * @todo check valid http url
+         */
+    }
+    if (isset($values['moodledir'])) {
+        /**
+         * @todo check valid directory path
+         */
+    }
+    if (isset($values['datadir'])) {
+        /**
+         * @todo check valid directory path
+         */
+    }
+    if (isset($values['dbtype'])) {
+        $dbtypes=array('mysql','oci8po','postgres7','mssql','mssql_n','odbc_mssql');
+        if (!in_array($values['dbtype'],$dbtypes)) {
+            console_write(STDERR,'invaliddbtype');
+        }
+    }
+    if (isset($values['dbhost'])) {
+        /**
+         * @todo check host?
+         */
+    }
+    if (isset($values['dbname'])) {
+        /**
+         * @todo check name for valid ones if required
+         */
+    }
+    if (isset($values['dbuser'])) {
+        /**
+         * @todo check validity of db user if required
+         */
+    }
+    if (isset($values['dbpass'])) {
+        /**
+         * @todo check validity of database password if required 
+         */
+    }
+    if (isset($values['prefix'])) {
+        /**
+         * @todo check for valid prefix
+         */
+    }
+    if (isset($values['sitefullname'])) {
+        /**
+         * @todo check for valid fullname for site
+         */
+    }
+     if (isset($values['siteshortname'])) {
+        /**
+         * @todo check for valid short name for site
+         */
+    }
+     if (isset($values['sitesummary'])) {
+        /**
+         * @todo check for valid summary
+         */
+    }
+     if (isset($values['sitenewsitems'])) {
+        /**
+         * @todo check for valid news items
+         */
+    }
+    if (isset($values['adminfirstname'])) {
+        /**
+         * @todo check for valid admin first name
+         */
+    }
+     if (isset($values['adminlastname'])) {
+        /**
+         * @todo check for valid last name
+         */
+    }
+     if (isset($values['adminusername'])) {
+        /**
+         * @todo check for valid username
+         */
+    }
+     if (isset($values['adminpassword'])) {
+        /**
+         * @todo check for valid password
+         */
+    }
+     if (isset($values['adminemail'])) {
+        /**
+         * @todo check for valid email
+         */
+    }
+    if (isset($values['verbose'])) {
+        if(!valid_int_range($values['verbose'],CLI_NO,CLI_FULL)){
+            console_write(STDERR,'invalidverbosevalue');
+        }
+    }
+    if (isset($values['interactivelevel'])) {
+        if(!valid_int_range($values['verbose'],CLI_NO,CLI_FULL)){
+            console_write(STDERR,'invalidinteractivevalue');
+        }
+    }
+
+    if (isset($values['help'])) {
+        /**
+         * @todo  nothing really
+         */
+    }
+}
+//=========================================================================//
+/**
+ * Write to standard out and error with exit in error
+ *
+ * @param standard out/err $stream
+ * @param string  $identifier
+ * @param name of module $module
+ */
+function console_write($stream,$identifier,$module='install',$use_string_lib=true) {
+    if ($use_string_lib) {
+        fwrite($stream,get_string($identifier,$module));
+    } else {
+        fwrite($stream,$identifier);
+    }
+    if ($stream == STDERR) {
+        fwrite($stream, "\n\n" . get_string('aborting',$module) . "\n\n");
+        die;
+    }
+}
+//=========================================================================//
+/**
+ * Read a mixed type
+ *
+ * @param stream $from
+ * @param int $size
+ * @return mixed type
+ */
+function read($from=STDIN,$size=1024) {
+    $input= trim(fread($from,$size));
+    return $input;
+}
+/**
+ * Read an integer
+ *
+ * @return integer
+ */
+function read_int() {
+    $input=read();
+    if (valid_param($input,PARAM_INT)) {
+        return $input;
+    } else {
+        console_write(STDERR,'invalidint');
+        console_write(STDOUT, "\n", '', false);
+    }
+}
+//=========================================================================//
+/**
+ * Read and integer value within range
+ *
+ * @param int $start
+ * @param int $end
+ * @return int
+ */
+function read_int_range($start,$end) {
+    $input=read_int();
+    if (valid_int_range($input,$start,$end)) {
+        return $input;
+    } else {
+        console_write(STDERR,'invalidintrange');
+        console_write(STDOUT, "\n", '', false);
+    }
+
+}
+//=========================================================================//
+/**
+ * Read yes/no argument
+ *
+ * @return string yes/no
+ */
+function read_yes_no() {
+    $input=strtolower(read());
+    if (valid_yes_no($input)) {
+        if ($input[0]=='y') {
+            return 'yes';
+        } else if($input[0]=='n') {
+            return 'no';
+        }
+    } else {
+        console_write(STDERR,'invalidyesno');
+        console_write(STDOUT, "\n", '', false);
+    }
+}
+
+//=========================================================================//
+/**
+ * Read a boolean parameter from the input
+ *
+ * @return boolean
+ */
+function read_boolean(){
+    $input=read_yes_no();
+    return clean_param($input,PARAM_BOOL);
+
+}
+//=========================================================================//
+/**
+ * Reading an element from a given set
+ *
+ * @param mixed type array $set
+ * @return mixed type
+ */
+function read_element($set=array()) {
+    $input=read();
+    if (valid_element($input,$set)) {
+        return $input;
+    } else {
+        console_write(STDERR,'invalidsetelement');
+        console_write(STDOUT, "\n", '', false);
+    }
+}
+//=========================================================================//
+function read_url() {
+    $input = read();
+    $localhost = false;
+    if ( strpos($input,'localhost') !== false) {
+        $input = str_replace('localhost','127.0.0.1',$input);
+        $localhost=true;
+    }
+    if (valid_param($input,PARAM_URL)) {
+        if ($localhost) {
+            return str_replace('127.0.0.1','localhost',$input);
+        } else {
+            return  $input;
+        }
+    } else {
+        console_write(STDERR,'invalidurl');
+    }
+
+}
+//=========================================================================//
+/**
+ * Enter description here...
+ *
+ * @return string
+ */
+function read_dir() {
+    $input = read();
+    return  $input;
+}
+//===========================================================================//
+/**
+ * Print compatibility message to standard out, and errors to standard error
+ *
+ * @param boolean $success
+ * @param string $testtext
+ * @param string $errormessage
+ * @param boolean $caution
+ * @param boolean $silent
+ * @return boolean
+ */
+function check_compatibility($success, $testtext,$errormessage,$caution=false,$silent=false) {
+    if ($success) {
+        if (!$silent) {
+            console_write(STDOUT,get_string('pass', 'install'),'',false);
+        }
+    } else {
+        if ($caution) {
+            if (!$silent) {
+                console_write(STDOUT,get_string('caution', 'install'),'',false);
+            }
+        } else {
+            console_write(STDOUT,get_string('fail', 'install'),'',false);
+            console_write(STDERR,$errormessage,'',false);
+        }
+    }
+    if (!$silent) {
+        console_write(STDOUT,"\t\t",'',false);
+        console_write(STDOUT,$testtext,'',false);
+        console_write(STDOUT,"\n",'',false);
+    }
+    return $success;
+}
+
+//==========================================================================//
+/**
+ * Print environment status to standard out
+ *
+ * @param array $env, of type object
+ */
+function print_environment_status($env = array()) {
+    console_write(STDOUT, get_string('name') . "\t\t\t" . get_string('info') . "\t" . get_string('status') . "\n\r", '', false);
+    //console_write(STDOUT,"Status\t\tInfo\t\tPart\n\r",'',false);
+    foreach ( $env as  $object) {
+        console_write(STDOUT,$object->part,'',false);
+        console_write(STDOUT,"\t\t",'',false);
+        if (!empty($object->info)) {
+            console_write(STDOUT, $object->info, '', false);
+        } else {
+            console_write(STDOUT, "\t", '', false);
+        }
+        console_write(STDOUT, "\t\t", '', false);
+        if ($object->status == 1 ) {
+            console_write(STDOUT,'ok','',false);
+        } else {
+            console_write(STDOUT,'fail','',false);
+        }
+        console_write(STDOUT,"\n\r",'',false);
+    }
+}
+
+/**
+ * Print environment status to standard out
+ *
+ * @param array $env, of type object
+ */
+function print_environment_status_detailed($env = array()) {
+    console_write(STDOUT,"Status\t\tLevel\t\tCurrent ver\tRequired ver\t\tPart\t\tInfo\n\r",'',false);
+    foreach ( $env as  $object) {
+
+        if ($object->status == 1 ) {
+            console_write(STDOUT,'ok ','',false);
+        } else if ($object->errorcode != 0) {
+            console_write(STDOUT,'fail ','',false);
+        } else {
+            console_write(STDOUT,'----','',false);
+        }
+        console_write(STDOUT,"\t\t",'',false);
+        console_write(STDOUT,$object->level,'',false);
+        console_write(STDOUT,"\t\t",'',false);
+        console_write(STDOUT,$object->current_version,'',false);
+        console_write(STDOUT,"\t",'',false);
+        console_write(STDOUT,$object->needed_version,'',false);
+        console_write(STDOUT,"\t\t",'',false);
+        console_write(STDOUT,$object->part,'',false);
+        console_write(STDOUT,"\t\t",'',false);
+        console_write(STDOUT,$object->info,'',false);
+        console_write(STDOUT,"\n\r",'',false);
+    }
+}
+/**
+ * Print a new line in the standard output
+ *
+ */
+
+function print_newline() {
+    console_write(STDOUT, "\n", '', false);
+}
+?>
index d9002693a1ec8d8083ef1f5b788ac806daace5d5..44ae6f8bd758c7defd65d764e2a004247de0e2c1 100644 (file)
-<?php
-/**
- * Functions to support installation process
- * @author Dilan
- * 
- */
-//========================================================================================//
-/**
- * Check the validity of the language
- * return true or false
- *
- * @param string $lang (short code for language)
- * @return true/false
- */
-function valid_language($lang) {
-    global $DEFAULT;
-    $langdir = dir($DEFAULT['dirroot'].'/install/lang');
-    $i=0;
-    $validllangs = array();
-
-    while (false !== ($file=$langdir->read())) {
-        if ($file[0] != '.' ) {
-            $validllangs[$i++]=$file;
-        }
-    }
-    if (in_array($lang,$validllangs)) {
-        return true;
-    } else {
-        return false;
-    }
-}
-//========================================================================================//
-/**
- * Read from array of language strings and return a array of string elements in which 
- * both values and keys are set to input array's key 
- *
- * @param array $lang string elements
- * @return array of string element
- */
-function get_short_codes ($lang = array()) {
-    $short_codes = array();
-
-    foreach ($lang as $key => $value) {
-        $short_codes[$key] = $key;
-    }
-    return  $short_codes;
-}
-//========================================================================================//
-/**
- * Check value for valid yes/no argument
- * Return true or false
- *
- * @param string $value
- * @return true/false
- */
-function valid_yes_no($value){
-    $valid=array('yes','y','n','no');
-    $value=strtolower($value);
-
-    if (in_array($value,$valid)) {
-        if ($value[0]=='y') {
-            return true;
-        } else if ($value[0]=='n') {
-            return true;
-        }
-    } else {
-        return false;
-    }
-}
-//========================================================================================//
-/**
- * Can value have a valid integer in the given range
- * Return true or false
- * @link valid_param()
- *
- * 
- * @param mixedtype $value
- * @param int $start
- * @param int $end
- * @return true/false
- */
-function valid_int_range($value,$start,$end) {
-    if (valid_param($value,PARAM_INT)) {
-        if ($value < $end && $value > $start) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-}
-
-/**
- * Take a value and and check it with the given set of values
- * If value if found in the set return true. False otherwise
- *
- * @param mixed type $value
- * @param array  $set of valid elements
- * @return boolean
- */
-
-function valid_element($value,$set) {
-    if(!empty($set)) {
-        //convert all the elements from set to lower case
-        foreach ($set as $key=>$opt) {
-            $set[$key]=strtolower($opt);
-        }
-        $value=strtolower($value);
-        if (in_array($value,$set)) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-}
-
-/**
- * Take a value and Type of the value 
- * If value match the type return true, false otherwise
- * uses {@link clean_param()} in moodlelib.php
- * @param mixedtype $value
- * @param int $type
- * @return boolean
- */
-function valid_param($value,$type){
-    $clean_val = clean_param($value,$type);
-    if ($clean_val == $value) {
-        return true;
-    }else {
-        return false;
-    }
-}
-//========================================================================================//
-/**
- * Creat long arument list for PEAR method invocation using LONGOPTOIN array
- *
- * @param long option array $long_opt
- * @return PEAR method compatible long option array 
- */
-function create_long_options($long_opt) {
-    $opt=array();
-    $i=0;
-    if (is_array($long_opt)) {
-        foreach ($long_opt as $key=>$value) {
-            if ($value == CLI_VAL_REQ) {
-                $opt[$i++]=$key.'=';
-            } else if ($value == CLI_VAL_OPT) {
-                $opt[$i++]=$key.'==';
-            }
+<?php  //$Id$
 
-        }
-    }
-    return $opt;
-}
-//========================================================================================//
 /**
- * This funtion return an array of options with option as key containing the value of 
- * respective option
- *
- * @param array of option arguments as defined by PEAR GetOpt calss $opt
- * @return return a options arguments with options as keys and values as respective value for key
+ * Functions to support installation process
  */
-function get_options($opt=array()) {
-
-    global $LONG_OPTIONS;
-    $ret_arr=array();
-
-    //get the options from the defined list of arguments
-    if (!empty($opt[0]) && is_array($opt[0])) {
-
-        foreach ($opt[0] as $key=>$value) {
-
-            if (substr($value[0],0,2)=='--') {                 //if the argument is a long option
-                $input_option=substr($value[0],2);
-            } else if (substr($value[0],0,1)=='-'){            //if the argument is a short option
-                $input_option=substr($value[0],1);
-            }
-
-            //check with valid set of options
-            if (in_array($input_option,$LONG_OPTIONS)) {
-                $ret_arr[$input_option]=$value[1];
-            }
-        }
-
-    }
-    //return array
-    return $ret_arr;
-
-}
-
-//========================================================================================//
 
 /**
- * This function returns a list of languages and their full names. 
- * The list of available languages is fetched from install/lang/xx/installer.php
- * and it's used exclusively by the installation process 
+ * This function returns a list of languages and their full names. The
+ * list of available languages is fetched from install/lang/xx/installer.php
+ * and it's used exclusively by the installation process
  * @return array An associative array with contents in the form of LanguageCode => LanguageName
  */
 function get_installer_list_of_languages() {
@@ -201,10 +16,10 @@ function get_installer_list_of_languages() {
 
     $languages = array();
 
-    /// Get raw list of lang directories
+/// Get raw list of lang directories
     $langdirs = get_list_of_plugins('install/lang');
     asort($langdirs);
-    /// Get some info from each lang
+/// Get some info from each lang
     foreach ($langdirs as $lang) {
         if (file_exists($CFG->dirroot .'/install/lang/'. $lang .'/installer.php')) {
             include($CFG->dirroot .'/install/lang/'. $lang .'/installer.php');
@@ -213,323 +28,19 @@ function get_installer_list_of_languages() {
             } else {
                 $shortlang = $lang;
             }
-            //if ($lang == 'en') {  //Explain this is non-utf8 en
-            //    $shortlang = 'non-utf8 en';
-            //}
+/*            if ($lang == 'en') {  //Explain this is non-utf8 en
+                $shortlang = 'non-utf8 en';
+            }*/
             if (!empty($string['thislanguage'])) {
-                $languages[$lang] = $string['thislanguage'] .' ('. $lang .')';
+                $languages[$lang] = $string['thislanguage'] .' ('. $shortlang .')';
             }
             unset($string);
         }
     }
-    /// Return array
+/// Return array
     return $languages;
 }
-//=========================================================================//
-/**
- * Validate options values 
- *
- * @param array $options
- */
-function validate_option_values($options){
-    $values=array();
-    $i=0;
-    foreach ($options as $val) {
-        $values[$i++]=$val;
-    }
-    if (isset($values['lang'])) {
-        if (!valid_language($values['lang'])) {
-            console_write(STDERR,'invalidvalueforlanguage');
-        console_write(STDOUT, "\n", '', false);
-        }
-    }
-    if (isset($values['webdir'])) {
-        /**
-                * @todo check valid directory path
-                */
-    }
-    if (isset($values['webaddr'])) {
-        /**
-                * @todo check valid http url
-                */
-    }
-    if (isset($values['moodledir'])) {
-        /**
-                * @todo check valid directory path
-                */
-    }
-    if (isset($values['datadir'])) {
-        /**
-                * @todo check valid directory path
-                */
-    }
-    if (isset($values['dbtype'])) {
-        $dbtypes=array('mysql','oci8po','postgres7','mssql','mssql_n','odbc_mssql');
-        if (!in_array($values['dbtype'],$dbtypes)) {
-            console_write(STDERR,'invaliddbtype');
-        }
-    }
-    if (isset($values['dbhost'])) {
-        /**
-                * @todo check host?
-                */
-    }
-    if (isset($values['dbname'])) {
-        /**
-                * @todo check name for valid ones if required
-                */
-    }
-    if (isset($values['dbuser'])) {
-        /**
-                * @todo check validity of db user if required
-                */
-    }
-    if (isset($values['dbpass'])) {
-        /**
-                * @todo check validity of database password if required 
-                */
-    }
-    if (isset($values['prefix'])) {
-        /**
-                * @todo check for valid prefix
-                */
-    }
-    if (isset($values['sitefullname'])) {
-        /**
-                * @todo check for valid fullname for site
-                */
-    }
-     if (isset($values['siteshortname'])) {
-        /**
-                * @todo check for valid short name for site
-                */
-    }
-     if (isset($values['sitesummary'])) {
-        /**
-                * @todo check for valid summary
-                */
-    }
-     if (isset($values['sitenewsitems'])) {
-        /**
-                * @todo check for valid news items
-                */
-    }
-    if (isset($values['adminfirstname'])) {
-        /**
-         * @todo check for valid admin first name
-         */
-    }
-     if (isset($values['adminlastname'])) {
-        /**
-                * @todo check for valid last name
-                */
-    }
-     if (isset($values['adminusername'])) {
-        /**
-                * @todo check for valid username
-                */
-    }
-     if (isset($values['adminpassword'])) {
-        /**
-                * @todo check for valid password
-                */
-    }
-     if (isset($values['adminemail'])) {
-        /**
-                * @todo check for valid email
-                */
-    }
-    if (isset($values['verbose'])) {
-        if(!valid_int_range($values['verbose'],CLI_NO,CLI_FULL)){
-            console_write(STDERR,'invalidverbosevalue');
-        }
-    }
-    if (isset($values['interactivelevel'])) {
-        if(!valid_int_range($values['verbose'],CLI_NO,CLI_FULL)){
-            console_write(STDERR,'invalidinteractivevalue');
-        }
-    }
 
-    if (isset($values['help'])) {
-        /**
-                * @todo  nothing really
-                */
-    }
-}
-//=========================================================================//
-/**
- * Write to standard out and error with exit in error
- *
- * @param standard out/err $stream
- * @param string  $identifier
- * @param name of module $module
- */
-function console_write($stream,$identifier,$module='install',$use_string_lib=true) {
-    if ($use_string_lib) {
-        fwrite($stream,get_string($identifier,$module));
-    } else {
-        fwrite($stream,$identifier);
-    }
-    if ($stream == STDERR) {
-        fwrite($stream, "\n\n" . get_string('aborting',$module) . "\n\n");
-        die;
-    }
-}
-//=========================================================================//
-/**
- * Read a mixed type
- *
- * @param stream $from
- * @param int $size
- * @return mixed type
- */
-function read($from=STDIN,$size=1024) {
-    $input= trim(fread($from,$size));
-    return $input;
-}
-/**
- * Read an integer
- *
- * @return integer
- */
-function read_int() {
-    $input=read();
-    if (valid_param($input,PARAM_INT)) {
-        return $input;
-    } else {
-        console_write(STDERR,'invalidint');
-        console_write(STDOUT, "\n", '', false);
-    }
-}
-//=========================================================================//
-/**
- * Read and integer value within range
- *
- * @param int $start
- * @param int $end
- * @return int
- */
-function read_int_range($start,$end) {
-    $input=read_int();
-    if (valid_int_range($input,$start,$end)) {
-        return $input;
-    } else {
-        console_write(STDERR,'invalidintrange');
-        console_write(STDOUT, "\n", '', false);
-    }
-
-}
-//=========================================================================//
-/**
- * Read yes/no argument
- *
- * @return string yes/no
- */
-function read_yes_no() {
-    $input=strtolower(read());
-    if (valid_yes_no($input)) {
-        if ($input[0]=='y') {
-            return 'yes';
-        } else if($input[0]=='n') {
-            return 'no';
-        }
-    } else {
-        console_write(STDERR,'invalidyesno');
-        console_write(STDOUT, "\n", '', false);
-    }
-}
-
-//=========================================================================//
-/**
- * Read a boolean parameter from the input
- *
- * @return boolean
- */
-function read_boolean(){
-    $input=read_yes_no();
-    return clean_param($input,PARAM_BOOL);
-
-}
-//=========================================================================//
-/**
- * Reading an element from a given set
- *
- * @param mixed type array $set
- * @return mixed type
- */
-function read_element($set=array()) {
-    $input=read();
-    if (valid_element($input,$set)) {
-        return $input;
-    } else {
-        console_write(STDERR,'invalidsetelement');
-        console_write(STDOUT, "\n", '', false);
-    }
-}
-//=========================================================================//
-function read_url() {
-    $input = read();
-    $localhost = false;
-    if ( strpos($input,'localhost') !== false) {
-        $input = str_replace('localhost','127.0.0.1',$input);
-        $localhost=true;
-    }
-    if (valid_param($input,PARAM_URL)) {
-        if ($localhost) {
-            return str_replace('127.0.0.1','localhost',$input);
-        } else {
-            return  $input;
-        }
-    } else {
-        console_write(STDERR,'invalidurl');
-    }
-
-}
-//=========================================================================//
-/**
- * Enter description here...
- *
- * @return string
- */
-function read_dir() {
-    $input = read();
-    return  $input;
-}
-//===========================================================================//
-/**
- * Print compatibility message to standard out, and errors to standard error
- *
- * @param boolean $success
- * @param string $testtext
- * @param string $errormessage
- * @param boolean $caution
- * @param boolean $silent
- * @return boolean
- */
-function check_compatibility($success, $testtext,$errormessage,$caution=false,$silent=false) {
-    if ($success) {
-        if (!$silent) {
-            console_write(STDOUT,get_string('pass', 'install'),'',false);
-        }
-    } else {
-        if ($caution) {
-            if (!$silent) {
-                console_write(STDOUT,get_string('caution', 'install'),'',false);
-            }
-        } else {
-            console_write(STDOUT,get_string('fail', 'install'),'',false);
-            console_write(STDERR,$errormessage,'',false);
-        }
-    }
-    if (!$silent) {
-        console_write(STDOUT,"\t\t",'',false);
-        console_write(STDOUT,$testtext,'',false);
-        console_write(STDOUT,"\n",'',false);
-    }
-    return $success;
-}
-
-//==========================================================================//
 /**
  * Get memeory limit
  *
@@ -543,7 +54,6 @@ function get_memory_limit() {
     }
 }
 
-//==========================================================================//
 /**
  * Check memory limit
  *
@@ -561,7 +71,6 @@ function check_memory_limit() {
     return ((int)str_replace('M', '', get_memory_limit()) >= 40);
 }
 
-//==========================================================================//
 /**
  * Check php version
  *
@@ -570,67 +79,12 @@ function check_memory_limit() {
 function inst_check_php_version() {
     return check_php_version("5.2.0");
 }
-/**
- * Print environment status to standard out
- *
- * @param array $env, of type object
- */
-function print_environment_status($env = array()) {
-    console_write(STDOUT, get_string('name') . "\t\t\t" . get_string('info') . "\t" . get_string('status') . "\n\r", '', false);
-    //console_write(STDOUT,"Status\t\tInfo\t\tPart\n\r",'',false);
-    foreach ( $env as  $object) {
-        console_write(STDOUT,$object->part,'',false);
-        console_write(STDOUT,"\t\t",'',false);
-        if (!empty($object->info)) {
-            console_write(STDOUT, $object->info, '', false);
-        } else {
-            console_write(STDOUT, "\t", '', false);
-        }
-        console_write(STDOUT, "\t\t", '', false);
-        if ($object->status == 1 ) {
-            console_write(STDOUT,'ok','',false);
-        } else {
-            console_write(STDOUT,'fail','',false);
-        }
-        console_write(STDOUT,"\n\r",'',false);
-    }
-}
 
 /**
- * Print environment status to standard out
- *
- * @param array $env, of type object
+ * Add slashes for single quotes and backslashes
+ * so they can be included in single quoted string
+ * (for config.php)
  */
-function print_environment_status_detailed($env = array()) {
-    console_write(STDOUT,"Status\t\tLevel\t\tCurrent ver\tRequired ver\t\tPart\t\tInfo\n\r",'',false);
-    foreach ( $env as  $object) {
-
-        if ($object->status == 1 ) {
-            console_write(STDOUT,'ok ','',false);
-        } else if ($object->errorcode != 0) {
-            console_write(STDOUT,'fail ','',false);
-        } else {
-            console_write(STDOUT,'----','',false);
-        }
-        console_write(STDOUT,"\t\t",'',false);
-        console_write(STDOUT,$object->level,'',false);
-        console_write(STDOUT,"\t\t",'',false);
-        console_write(STDOUT,$object->current_version,'',false);
-        console_write(STDOUT,"\t",'',false);
-        console_write(STDOUT,$object->needed_version,'',false);
-        console_write(STDOUT,"\t\t",'',false);
-        console_write(STDOUT,$object->part,'',false);
-        console_write(STDOUT,"\t\t",'',false);
-        console_write(STDOUT,$object->info,'',false);
-        console_write(STDOUT,"\n\r",'',false);
-    }
-}
-/**
- * Print a new line in the standard output
- *
- */
-
-function print_newline() {
-    console_write(STDOUT, "\n", '', false);
+function addsingleslashes($input){
+    return preg_replace("/(['\\\])/", "\\\\$1", $input);
 }
-?>