SF.net SVN: morphix: [2367] trunk/morph-scripts/mmorphix/morphing-morphix-gui.sh
[email protected] Sat, 22 Jul 2006 12:38:54 -0700
| Newsgroups | gmane.linux.morphix.cvs |
|---|---|
| Message-ID | <[email protected]> |
Revision: 2367
Author: bmsleight
Date: 2006-07-22 12:38:43 -0700 (Sat, 22 Jul 2006)
ViewCVS: http://svn.sourceforge.net/morphix/?rev=2367&view=rev
Log Message:
-----------
Moving along svn stats++
Modified Paths:
--------------
trunk/morph-scripts/mmorphix/morphing-morphix-gui.sh
Modified: trunk/morph-scripts/mmorphix/morphing-morphix-gui.sh
===================================================================
--- trunk/morph-scripts/mmorphix/morphing-morphix-gui.sh 2006-07-21 09:33:23 UTC (rev 2366)
+++ trunk/morph-scripts/mmorphix/morphing-morphix-gui.sh 2006-07-22 19:38:43 UTC (rev 2367)
@@ -56,16 +56,111 @@
# SECTION 1 : GLOBAL VARIABLES AND GLOBAL FUNCTIONS #
# #
###########################################################
+get_global_variables ()
+{
+# Set up global variable and global stuff
+ SETTING_FILE=~/.mmorphix
+ SETTING_LOG_FILE=/tmp/mmorphix
+ SETTING_LOG_COMMANDS=/tmp/mmscript.sh
+ SETTING_MYMORPH="MyMorph.iso"
+ TMP_FILE=/tmp/mmorphix.$$
+ TMP_FILE_2=/tmp/mmorphix_.$$
+ TMP_SCRIPT=/tmp/mmorphix.$$.sh
+ WHOAMI=$(whoami)
+ rm $SETTING_LOG_FILE
+ echo "#!/bin/bash" >$SETTING_LOG_COMMANDS
+ chmod +x $SETTING_LOG_COMMANDS
+ echo "#!/bin/bash" >$TMP_SCRIPT
+ chmod +x $TMP_SCRIPT
+}
+log_file ()
+{
+ echo "$1" >>"$SETTING_LOG_FILE"
+}
+log_and_do_command ()
+{
+ TMP_DO=""
+ for TMP_COMMANDS in $*
+ do
+ TMP_DO="$TMP_DO $TMP_COMMANDS"
+ done
+ echo $TMP_DO >>$SETTING_LOG_COMMANDS
+ eval $TMP_DO
+}
+
+log_and_do_command_progress ()
+{
+ TMP_DO=""
+ for TMP_COMMANDS in $*
+ do
+ TMP_DO="$TMP_DO $TMP_COMMANDS"
+ done
+ echo $TMP_DO >>$SETTING_LOG_COMMANDS
+# TMP_DO="$TMP_DO | xdialog_progress \"$MESSAGE_PROGRESS\" "
+# eval $TMP_DO
+ echo $TMP_DO >$TMP_SCRIPT
+ xterm -T "Morphing-Morphix in progress ..." -e $TMP_SCRIPT
+}
+
+log_and_do_not_do_command ()
+{
+ TMP_DO=""
+ for TMP_COMMANDS in $*
+ do
+ TMP_DO="$TMP_DO $TMP_COMMANDS"
+ done
+ echo $TMP_DO >>$SETTING_LOG_COMMANDS
+}
+
+not_log_do_command ()
+{
+ TMP_DO=""
+ for TMP_COMMANDS in $*
+ do
+ TMP_DO="$TMP_DO $TMP_COMMANDS"
+ done
+ eval $TMP_DO
+ }
+
+
###########################################################
# #
# SECTION 2 : MESSAGES #
# #
###########################################################
+get_messages ()
+{
+MESSAGE_TITLE="Morphing Morphix"
+MESSAGE_EXIT="Are you sure you wish to exit Morphing Morphix now ?"
+MESSAGE_MAIN_MENU="Select one of the example Morphs to do "
+MESSAGE_MAIN_MENU_1="Configure Morphing-Morphix"
+MESSAGE_MAIN_MENU_2="Introduction to isomorph"
+MESSAGE_MAIN_MENU_3="Using an XML template to build a MiniModule"
+MESSAGE_MAIN_MENU_4="Morphing the Home Directory "
+MESSAGE_MAIN_MENU_5="Using an XML template to build a mainmodule"
+MESSAGE_MAIN_MENU_6="Step inside the MainModule - changing by hand"
+MESSAGE_MAIN_MENU_7="Rebranding an ISO"
+MESSAGE_MAIN_MENU_8="Building a whiole ISO from Scratch"
+MESSAGE_MAIN_MENU_9="Testing an iso using qemu"
+MESSAGE_SETTING_USE="Setting up Morphing Morphix
+Previous setting detected.
+Would you like to use the these settings ? "
+MESSAGE_SETTING_SELECT="Setting up Morphing Morphix
+We need to select somewhere to store the new cd images.
+Select from the following a mount points to use "
+MESSAGE_SETTING_MAKEISO="Setting up Morphing Morphix
+
+We need to make a iso image for us to morph
+We will use this CD and call the image MyMorph.iso"
+}
+
+
+
###########################################################
# #
# SECTION 3 : XDIALOG TEMPLATE FUNCTIONS #
@@ -227,14 +322,68 @@
# o Umount drive #
# #
###########################################################
+closing_mmorphix ()
+{
+ xdialog_yes_no "$MESSAGE_EXIT"
+ case $? in
+ 0)
+ log_file "closing_morphix $1";
+ source $SETTING_FILE ;
+ sudo umount $MNT_POINT ;
+ rm $TMP_FILE 2>/dev/null
+ rm $TMP_FILE_2 2>/dev/null
+ exit 0 ;;
+ 1) $1 ;;
+ esac
+}
+
###########################################################
# #
# SECTION 5 : MAIN MENU #
# #
###########################################################
+main_menu ()
+{
+xdialog_menu "$MESSAGE_MAIN_MENU" \
+ '$MESSAGE_MAIN_MENU_1' '$MESSAGE_MAIN_MENU_2'\
+ '$MESSAGE_MAIN_MENU_3' '$MESSAGE_MAIN_MENU_4'\
+ '$MESSAGE_MAIN_MENU_5' '$MESSAGE_MAIN_MENU_6'\
+ '$MESSAGE_MAIN_MENU_7' '$MESSAGE_MAIN_MENU_8'\
+ '$MESSAGE_MAIN_MENU_9'
+ case $? in
+ 1)
+ log_file "main_menu selected $?"
+ set_up_mmorphix;;
+ 2)
+ log_file "main_menu selected $?"
+ isomorph_intro;;
+ 3)
+ log_file "main_menu selected $?"
+ build_minimodule;;
+ 4)
+ log_file "main_menu selected $?"
+ make_mini;;
+ 5)
+ log_file "main_menu selected $?"
+ build_mainmodule;;
+ 6)
+ log_file "main_menu selected $?"
+ inside_mainmodule;;
+ 7)
+ log_file "main_menu selected $?"
+ rebrand_iso;;
+ 8)
+ log_file "main_menu selected $?"
+ autobuild_whole_iso;;
+ 9)
+ log_file "main_menu selected $?"
+ test_qemu;;
+ 255)
+ closing_mmorphix "main_menu";;
+ esac
+}
-
###########################################################
# #
# BELOW IS THE MORPHING FUN #
@@ -251,7 +400,65 @@
# #
###########################################################
+set_up_mmorphix ()
+{
+ log_file "function set_up_morphix"
+ if [ -e "$SETTING_FILE" ]
+ then
+ xdialog_yes_no "$MESSAGE_SETTING_USE"
+ case $? in
+ 0)
+ log_file "Using existing setting.";;
+ 1)
+ rm $SETTING_FILE;
+ log_file "rm existing setting.";;
+ 255)
+ closing_mmorphix "set_up_mmorphix";;
+ esac
+ fi
+ if [ ! -e "$SETTING_FILE" ]
+ then
+ HD_IN_MNT=""
+ for TMP_HD_IN_MNT in /mnt/hd??
+ do
+ HD_IN_MNT="$HD_IN_MNT \"$TMP_HD_IN_MNT\""
+ done
+ xdialog_radio_select "$MESSAGE_SETTING_SELECT" \
+ $HD_IN_MNT
+ echo "MNT_POINT=$TMP_XD_RETURN" >$SETTING_FILE
+ fi
+ #We can not have got to this stage w/o a setting file.
+ source $SETTING_FILE
+ log_and_do_not_do_command "#Setting-up mmorphing"
+ log_and_do_command "sudo mount $MNT_POINT -o dev"
+ log_and_do_command "sudo mkdir $MNT_POINT/mmorphix 2>/dev/null"
+ log_and_do_command "sudo chown $WHOAMI.users $MNT_POINT/mmorphix 2>/dev/null"
+ log_and_do_command "mkdir $MNT_POINT/mmorphix/tmp 2>/dev/null"
+ log_and_do_command "mkdir $MNT_POINT/mmorphix/iso 2>/dev/null"
+ log_and_do_command "mkdir $MNT_POINT/mmorphix/morphing 2>/dev/null"
+ log_and_do_command "mkdir $MNT_POINT/mmorphix/morphed 2>/dev/null"
+ if [ -e "$MNT_POINT/mmorphix/iso/$SETTING_MYMORPH" ]
+ then
+ echo "Images exist"
+ else
+ xdialog_message "$MESSAGE_SETTING_MAKEISO"
+ log_and_do_command "sudo dd if=/dev/cdrom \
+ of=$MNT_POINT/mmorphix/iso/$SETTING_MYMORPH >$TMP_FILE 2>&1 &"
+ log_and_do_command_progress "while pidof dd >/dev/null; do sudo kill -USR1 $(pidof dd); \
+ tail -n 1 $TMP_FILE; sleep 2; done"
+ fi
+ log_and_do_not_do_command "#Setting-up complete"
+ log_file "completed set-up"
+ main_menu
+}
+is_mmorphx_set_up ()
+{
+ not_written
+}
+
+
+
###########################################################
# #
# SECTION 11 : ISOMORPH INTRODUCTION #
@@ -261,8 +468,13 @@
# o --del mini #
# #
###########################################################
+isomorph_intro ()
+{
+ is_mmorphx_set_up
+ log_file "isomorph_intro"
+ main_menu
+}
-
###########################################################
# #
# SECTION 12 : BUILD MINIMODULE #
@@ -272,8 +484,13 @@
# o example of root overlay #
# #
###########################################################
+build_minimodule ()
+{
+ is_mmorphx_set_up
+ log_file "build_minimodule"
+ main_menu
+}
-
###########################################################
# #
# SECTION 13 : MAKE-MINI #
@@ -281,8 +498,13 @@
# o saved setting in minimodule #
# #
###########################################################
+make_mini ()
+{
+ is_mmorphx_set_up
+ log_file "make_mini"
+ main_menu
+}
-
###########################################################
# #
# SECTION 14 : BUILD MAINMODULE #
@@ -291,8 +513,13 @@
# o Use debian.org or point locally ? #
# #
###########################################################
+build_mainmodule ()
+{
+ is_mmorphx_set_up
+ log_file "build_mainmodule"
+ main_menu
+}
-
###########################################################
# #
# SECTION 15 : INSIDE THE MAINMODULE #
@@ -302,26 +529,41 @@
# o chroot #
# #
###########################################################
+inside_mainmodule ()
+{
+ is_mmorphx_set_up
+ log_file "inside_mainmodule"
+ main_menu
+}
-
###########################################################
# #
-# SECTION 14 : BUILD BASEISO #
+# SECTION 16 : REBRAND THE ISO #
# #
-# o isomaker #
-# o Use debian.org or point locally ? #
+# o morphix-rebrand #
# #
###########################################################
+rebrand_iso ()
+{
+ is_mmorphx_set_up
+ log_file "inside_mainmodule"
+ main_menu
+}
-
###########################################################
# #
-# SECTION 16 : AUTOBUILD WHOLE CD #
+# SECTION 17 : AUTOBUILD WHOLE CD #
# #
# o isomaker #
# o Use debian.org or point locally ? #
# #
###########################################################
+autobuild_whole_iso ()
+{
+ is_mmorphx_set_up
+ log_file "autobuild_whole_iso"
+ main_menu
+}
###########################################################
@@ -331,19 +573,33 @@
# o qmeu #
# #
###########################################################
+test_qemu ()
+{
+ is_mmorphx_set_up
+ log_file "test_qemu"
+ main_menu
+}
###########################################################
# #
+# SECTION 98 : ABOUT MORPHING-MORPHIX #
+# #
+###########################################################
+introduction ()
+{
+ not_written
+}
+
+###########################################################
+# #
# SECTION 98 : NOT WRITEN #
# #
###########################################################
not_written ()
{
log_file "not_written"
- xdialog_message "Oops not written" \
- "Oops not written"
- main_menu
+ xdialog_message "Oops not written" "Oops not written"
}
@@ -352,3 +608,7 @@
# SECTION 99 : MAIN LOOP #
# #
###########################################################
+
+get_global_variables
+get_messages
+main_menu
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV