--- voyage-current/usr/local/sbin/voyage-install.sh-y	2009-09-29 17:22:55.342134148 +0200
+++ voyage-current/usr/local/sbin/voyage-install.sh	2009-09-29 18:54:48.550132768 +0200
@@ -139,7 +139,7 @@
 	else
 		VOYAGE_SYSTEM_CONSOLE_DEFAULT=1
 	fi
-	local a opts="Serial Terminal%Console Interface"
+	local a opts="1:Serial Terminal:%2:Console Interface:"
 	ask_setting "Select terminal type:" "$opts" $VOYAGE_SYSTEM_CONSOLE_DEFAULT
 	case $v in
 		1) VOYAGE_SYSTEM_CONSOLE="serial";;
@@ -156,6 +156,31 @@
 }
 
 #
+#	Function select_fs_creation()
+#	Selects if we do partitioning create the file system
+#	Sets the environment MAKEFS
+#	with the result
+#
+select_fs_creation () {
+	local MAKEFS_DEFAULT
+	if [ "$MAKEFS" == "" ]; then 
+		MAKEFS_DEFAULT=0
+	else
+		MAKEFS_DEFAULT=1
+	fi 
+
+	local a opts="1:Partition Flash Media and Create Filesystem%2:Use Flash Media as-is"
+	ask_setting "What shall I do with your Flash Media?" "$opts" "$MAKEFS_DEFAULT"
+	case $v in
+		1) MAKEFS=1;;
+		2) MAKEFS=0;;
+		*) err_quit "Unrecognized response from ask_setting";;
+	esac
+	save_config_var MAKEFS VOYAGE_CONF_LIST
+	save_config_var MAKEFS CONFIGLIST
+}
+
+#
 #	Function confirm_copy_details()
 #	Checks that all required settings have been made before
 #	starting copying the distribution data to the target.  If
@@ -195,6 +220,11 @@
 Disk/Flash Device:        $TARGET_DISK
 Installation Partition:   $TARGET_DISK$TARGET_PART
 EOM
+	if [ $MAKEFS == 1 ]; then
+		cat >&2 <<EOM
+Create Partition and FS:  yes
+EOM
+	fi
 
 	if [ $SYSTEM_BOOTSTRAP == "grub" ]; then
 		cat >&2 <<EOM
@@ -234,9 +264,11 @@
 	fi
 
 	echo "Ready to go ...." >&2
+	[ "$MAKEFS" = 1 ] && ${EXECDIR}/format-cf.sh -t $TARGET_DISK -b $BOOTSTRAP_PART -y
 	${EXECDIR}/copyfiles.sh
 }
 
+
 ############################################
 #                                          #
 #        Main script begins here           #
@@ -264,6 +296,7 @@
 TARGET_MOUNT=/mnt/cf
 BOOTSTRAP_PART=1
 SYSTEM_BOOTSTRAP=grub
+MAKEFS=""
 
 VOYAGE_SYSTEM_SERIAL=38400
 VOYAGE_SYSTEM_CONSOLE=serial
@@ -285,6 +318,7 @@
 		-s  VOYAGE_SYSTEM_SERIAL  default=$VOYAGE_SYSTEM_SERIAL
 		-c  VOYAGE_SYSTEM_CONSOLE default=$VOYAGE_SYSTEM_CONSOLE
 		-d  DISTDIR               default=$DISTDIR
+		-f  partition and mkfs    default=ask
 EOF
 }
 
@@ -341,12 +375,15 @@
 			BITMAP=$[ $BITMAP | 256 ]
 		    shift
 			;;
+		-f) CLA_MAKEFS="1"
+                        BITMAP=$[ $BITMAP | 512 ]
+			;;
 		*)  usage
 			exit 1
 			;;
 		esac
 	done
-	if [ $BITMAP != 511 ]; then
+	if [ $BITMAP != 1023 ]; then
 		echo "some mandatory options are unset, please enter them interactively"
 		run_dialog=1
 	else 
@@ -408,13 +445,14 @@
 [ ! -z "$CLA_VOYAGE_SYSTEM_SERIAL"  ] && VOYAGE_SYSTEM_SERIAL="$CLA_VOYAGE_SYSTEM_SERIAL"                      
 [ ! -z "$CLA_VOYAGE_SYSTEM_CONSOLE" ] && VOYAGE_SYSTEM_CONSOLE="$CLA_VOYAGE_SYSTEM_CONSOLE"                      
 [ ! -z "$CLA_DISTDIR"               ] && DISTDIR="$CLA_DISTDIR"                             
+[ ! -z "$CLA_MAKEFS"                ] && MAKEFS="$CLA_MAKEFS"                             
 
 if [ "$run_dialog" = 1 ]; then 
 
 	# here we define the different choices which can be made by the user
 	# OPTIONS-Format: option "%" option "%" option
 	# option-Format:  number ":" description ":" preset (here: by command line)
-	OPTIONS="1:Specify Distribution Directory:$CLA_DISTDIR%2:Select Target Profile:$CLA_VOYAGE_PROFILE%3:Select Target Disk:$CLA_TARGET_DISK%4:Select Target Bootstrap Loader:$CLA_SYSTEM_BOOTSTRAP%5:Configure Target Console:$CLA_VOYAGE_SYSTEM_CONSOLE%6:Copy Distribution to Target:1%7:Exit:1%0:Test:1"
+	OPTIONS="1:Specify Distribution Directory:$CLA_DISTDIR%2:Select Target Profile:$CLA_VOYAGE_PROFILE%3:Select Target Disk:$CLA_TARGET_DISK%4:Select Target Bootstrap Loader:$CLA_SYSTEM_BOOTSTRAP%5:Configure Target Console:$CLA_VOYAGE_SYSTEM_CONSOLE%6:Partition and Create Filesystem:$CLA_MAKEFS%7:Copy Distribution to Target:1%8:Exit:1"
 	
 	opt=1
 	while true
@@ -436,8 +474,9 @@
 			3) select_target_disk;;
 			4) select_target_boot;;
 			5) select_target_console;;
-			6) confirm_copy_details;;
-			7) break;;
+			6) select_fs_creation;;
+			7) confirm_copy_details;;
+			8) break;;
 			*) err_quit "Invalid return code from ask_setting";;
 		esac
 	done
