function create_cmd_output(&$action, &$a_disk, &$disk, &$partition, &$umount) { $cmdout = CMDOUT_PARA; ob_end_flush(); $retvalue = <<<EOD {$cmdout} EOD; switch ($action) { case "fsck": /* Get the id of the disk. */ $id = array_search_ex($disk, $a_disk, "name"); /* Get the filesystem type of the disk. */ $type = $a_disk[$id]['fstype']; /* Check if disk is mounted. */ $ismounted = disks_check_mount_fullname($disk . $partition); /* Umount disk if necessary. */ if ($umount && $ismounted) { $diskinit_str = "<strong class='red'>" . gettext("Note") . ":</strong> " . gettext("The disk is currently mounted! The mount point will be removed temporary to perform selected command.") . "<br /><br />"; $retvalue .= <<<EOD <div id="ismounted_out" style="font-family: Courier, monospace; font-size: small;"> <pre style="font-family: Courier, monospace; font-size: small; font-style: italic;">{$diskinit_str}</pre> </div> EOD; disks_umount_fullname($disk . $partition); } switch ($type) { case "": case "ufs": case "ufs_no_su": case "ufsgpt": case "ufsgpt_no_su": $button = create_toggle_button("Checking disk", "ufsgn_fsck_out"); $cmd = "/sbin/fsck_ufs -y -f " . escapeshellarg($disk . $partition); $out = create_cmdout_container("ufsgn_fsck_out", $cmd); $retvalue .= assemble_cmdout($button, $out); break; case "gmirror": case "gvinum": case "graid5": $diskinit_str = sprintf(gettext("Use <a href='%s'>RAID tools</a> for this disk!"), "disks_raid_{$type}_tools.php"); $retvalue .= <<<EOD <div id="graid5_out" style="display: none; font-family: Courier, monospace; font-size: small;"> <pre style="font-family: Courier, monospace; font-size: small; font-style: italic;">{$diskinit_str}</pre> </div> EOD; break; case "msdos": $button = create_toggle_button("Checking disk", "dos_fsck_out"); $cmd = "/sbin/fsck_msdosfs -y -f " . escapeshellarg($disk . $partition); $out = create_cmdout_container("dos_fsck_out", $cmd); $retvalue .= assemble_cmdout($button, $out); break; } /* Mount disk if necessary. */ if ($umount && $ismounted) { disks_mount_fullname($disk . $partition); } break; } return $retvalue; }
function create_format_output($disk, $type, $notinitmbr) { $ddetails = DISK_DETAILS_PARA; ob_end_flush(); $retvalue = <<<EOD {$ddetails} EOD; // Erase MBR if not checked if (!$notinitmbr) { $button = create_toggle_button("Erasing MBR and all paritions", "mbr_out"); $cmd = "dd if=/dev/zero of=" . escapeshellarg($disk) . " bs=32k count=640"; $out = create_cmdout_container("mbr_out", $cmd); $retvalue .= assemble_cmdout($button, $out); } else { $diskinit_str = "Keeping the MBR and all partitions"; $retvalue .= <<<EOD <div id="mbr_out" style="font-family: Courier, monospace; font-size: small;"> <pre style="font-family: Courier, monospace; font-size: small; font-style: italic;">{$diskinit_str}</pre> </div> EOD; } // end if switch ($type) { case "ufs": $button = create_toggle_button("Creating one partition", "ufs_fdisk_out"); /* Initialize disk */ $cmd = "/sbin/fdisk -I -b /boot/mbr " . escapeshellarg($disk); $out = create_cmdout_container("ufs_fdisk_out", $cmd); $retvalue .= assemble_cmdout($button, $out); $button = create_toggle_button("Initializing partition", "ufs_dd_out"); /* Initialise the partition (optional) */ $cmd = "/bin/dd if=/dev/zero of=" . escapeshellarg($disk) . "s1 bs=32k count=16"; $out = create_cmdout_container("ufs_dd_out", $cmd); $retvalue .= assemble_cmdout($button, $out); $button = create_toggle_button("Creating BSD label", "ufs_label_out"); /* Create s1 label */ $cmd = "/sbin/bsdlabel -w " . escapeshellarg($disk) . "s1 auto"; $out = create_cmdout_container("ufs_label_out", $cmd); $retvalue .= assemble_cmdout($button, $out); $button = create_toggle_button("Creating Filesystem", "ufs_newfs_out"); /* Create filesystem */ $cmd = "/sbin/newfs -U " . escapeshellarg($disk) . "s1"; $out = create_cmdout_container("ufs_newfs_out", $cmd); $retvalue .= assemble_cmdout($button, $out); break; // end case "ufs": // end case "ufs": case "ufs_no_su": $button = create_toggle_button("Creating one partition", "ufsn_fdisk_out"); /* Initialize disk */ $cmd = "/sbin/fdisk -I -b /boot/mbr " . escapeshellarg($disk); $out = create_cmdout_container("ufsn_fdisk_out", $cmd); $retvalue .= assemble_cmdout($button, $out); $button = create_toggle_button("Initializing partition", "ufsn_dd_out"); /* Initialise the partition (optional) */ $cmd = "/bin/dd if=/dev/zero of=" . escapeshellarg($disk) . "s1 bs=32k count=16"; $out = create_cmdout_container("ufsn_dd_out", $cmd); $retvalue .= assemble_cmdout($button, $out); $button = create_toggle_button("Creating BSD label", "ufsn_label_out"); /* Create s1 label */ $cmd = "/sbin/bsdlabel -w " . escapeshellarg($disk) . "s1 auto"; $out = create_cmdout_container("ufsn_label_out", $cmd); $retvalue .= assemble_cmdout($button, $out); $button = create_toggle_button("Creating Filesystem", "ufsn_newfs_out"); /* Create filesystem */ $cmd = "/sbin/newfs -m 0 " . escapeshellarg($disk) . "s1"; $out = create_cmdout_container("ufsn_newfs_out", $cmd); $retvalue .= assemble_cmdout($button, $out); break; // end ufs_no_su // end ufs_no_su case "ufsgpt": $button = create_toggle_button("Destroying old GTP information", "ufsg_gptd_out"); /* Destroy GPT partition table */ $cmd = "/sbin/gpt destroy " . escapeshellarg($disk); $out = create_cmdout_container("ufsg_gptd_out", $cmd); $retvalue .= assemble_cmdout($button, $out); $button = create_toggle_button("Creating GPT partition", "ufsg_gptc_out"); /* Create GPT partition table */ $cmd = array("/sbin/gpt create -f " . escapeshellarg($disk), "/sbin/gpt add -t ufs " . escapeshellarg($disk)); $out = create_cmdout_container("ufsg_gptc_out", $cmd); $retvalue .= assemble_cmdout($button, $out); $button = create_toggle_button("Creating Filesystem with Soft Updates", "ufsg_newfs_out"); /* Create filesystem */ $cmd = "/sbin/newfs -U " . escapeshellarg($disk) . "p1"; $out = create_cmdout_container("ufsg_newfs_out", $cmd); $retvalue .= assemble_cmdout($button, $out); break; // end case "ufsgpt": // end case "ufsgpt": case "ufsgpt_no_su": $button = create_toggle_button("Destroying old GTP information", "ufsgn_gpt_out"); /* Destroy GPT partition table */ $cmd = "/sbin/gpt destroy " . escapeshellarg($disk); $out = create_cmdout_container("ufsgn_gpt_out", $cmd); $retvalue .= assemble_cmdout($button, $out); $button = create_toggle_button("Creating GPT partition", "ufsgn_gptc_out"); /* Create GPT partition table */ $cmd = array("/sbin/gpt create -f " . escapeshellarg($disk), "/sbin/gpt add -t ufs " . escapeshellarg($disk)); $out = create_cmdout_container("ufsgn_gptc_out", $cmd); $retvalue .= assemble_cmdout($button, $out); $button = create_toggle_button("Creating Filesystem without Soft Updates", "ufsgn_newfs_out"); /* Create filesystem */ $cmd = "/sbin/newfs -m 0 " . escapeshellarg($disk) . "p1"; $out = create_cmdout_container("ufsgn_newfs_out", $cmd); $retvalue .= assemble_cmdout($button, $out); break; // end case "ufsgpt_no_su": // end case "ufsgpt_no_su": case "softraid": $button = create_toggle_button("Initializing disk", "softr_fdisk_out"); /* Initialize disk */ $cmd = "/sbin/fdisk -I -b /boot/mbr " . escapeshellarg($disk); $out = create_cmdout_container("softr_fdisk_out", $cmd); $retvalue .= assemble_cmdout($button, $out); $button = create_toggle_button("Initializing partition", "softr_dd_out"); /* Initialise the partition (optional) */ $cmd = "/bin/dd if=/dev/zero of=" . escapeshellarg($disk) . "s1 bs=32k count=16"; $out = create_cmdout_container("softr_dd_out", $cmd); $retvalue .= assemble_cmdout($button, $out); $button = create_toggle_button("Delete old gmirror information", "softr_dd_out"); /* Delete old gmirror information */ $cmd = "/sbin/gmirror clear " . escapeshellarg($disk); $out = create_cmdout_container("softr_dd_out", $cmd); $retvalue .= assemble_cmdout($button, $out); break; // end case "softraid": // end case "softraid": case "msdos": $button = create_toggle_button("Initialize disk", "dos_fdisk_out"); /* Initialize disk */ $cmd = "/sbin/fdisk -I -b /boot/mbr " . escapeshellarg($disk); $out = create_cmdout_container("dos_fdisk_out", $cmd); $retvalue .= assemble_cmdout($button, $out); $button = create_toggle_button("Initialize partion", "dos_dd_out"); /* Initialise the partition (optional) */ $cmd = "/bin/dd if=/dev/zero of=" . escapeshellarg($disk) . "s1 bs=32k count=16"; $out = create_cmdout_container("dos_dd_out", $cmd); $retvalue .= assemble_cmdout($button, $out); $button = create_toggle_button("Creating BSD label", "dos_label_out"); /* Initialise the partition (optional) */ $cmd = "/sbin/bsdlabel -w " . escapeshellarg($disk) . "s1 auto"; $out = create_cmdout_container("dos_label_out", $cmd); $retvalue .= assemble_cmdout($button, $out); $button = create_toggle_button("Creating Filesystem", "dos_newfs_out"); /* Initialise the partition (optional) */ $a_out = "/sbin/newfs_msdos -F 32 " . escapeshellarg($disk) . "s1"; $out = create_cmdout_container("dos_newfs_out", $cmd); $retvalue .= assemble_cmdout($button, $out, true); break; // end case "msdos": } // end switch return $retvalue; }