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