From: hickert Date: Tue, 12 Dec 2006 10:57:03 +0000 (+0000) Subject: Implemented gen_cd image into trunk X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=ea192ab4f2ec780c4e2f21820ba653c67da84bb3;p=gosa.git Implemented gen_cd image into trunk git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@5365 594d385d-05f5-0310-b6e9-bd551577e9d8 --- diff --git a/plugins/admin/systems/class_systemManagement.inc b/plugins/admin/systems/class_systemManagement.inc index 96dc554d0..29edf92b9 100644 --- a/plugins/admin/systems/class_systemManagement.inc +++ b/plugins/admin/systems/class_systemManagement.inc @@ -121,7 +121,7 @@ class systems extends plugin return ($smarty->fetch(get_template_path('chooser.tpl', TRUE))); } - + /******************** Create FAI CD ... ********************/ @@ -132,6 +132,84 @@ class systems extends plugin } + /* Start CD-Creation */ + if ((isset($_POST["cd_create"])) && !empty($this->dn)){ + $smarty->assign("src", "?plug=".$_GET['plug']."&PerformIsoCreation"); + return ($smarty->fetch(get_template_path('gencd_frame.tpl', TRUE))); + } + + + if ($this->dn != "" && isset($_GET['PerformIsoCreation'])){ + + $return_button = "
+ + +
"; + + $dsc = array(0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "w")); + + /* Get and check command */ + $command= search_config($this->config->data['TABS'], "workgeneric", "ISOCMD"); + // $command = "/bin/sh /home/hickert/gen_stuff.sh"; + if (check_command($command)){ + @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__, $command, "Execute"); + + /* Print out html introduction */ + echo ' + '; + echo ""; + echo ""; + echo " + +
";
+
+        /* Open process handle and check if it is a valid process */
+        $process= proc_open($command, $dsc, $pipes, '/tmp');
+        if (is_resource($process)) {
+          fclose($pipes[0]);
+
+          /* Print out returned lines && write JS to scroll down each line */
+          while (!feof($pipes[1])){
+            $cur_dat = fgets($pipes[1], 1024);
+            echo $cur_dat;
+            echo "" ;
+            flush();
+          }
+        }
+
+        /* Get error string && close streams */
+        $buffer= stream_get_contents($pipes[2]);
+        fclose($pipes[1]);
+        fclose($pipes[2]);
+        echo "
"; + + + /* Check return code */ + $ret= proc_close($process); + if ($ret != 0){ + echo "

"._("Creating the image failed. Please see the report below.")."

"; + echo "
$buffer
"; + } + + $this->dn = ""; + echo $return_button."
"; + + } else { + $tmp= "

".sprintf(_("Command '%s', specified for ISO creation doesn't seem to exist."), $command)."

"; + echo $tmp; + } + + /* Scroll down completly */ + echo "" ; + echo ""; + flush(); + exit; + } + + /******************** Create new system ... ********************/