Auto deploy prototype #2
[genesis.git] / fuel / prototypes / deploy / deploy / functions / patch-iso.sh
@@ -13,9 +13,9 @@
 # build target "make ci-iso" instead!
 
 exit_handler() {
-  rm -Rf $tmpnewdir
-  fusermount -u $tmporigdir 2>/dev/null
-  test -d $tmporigdir && mdir $tmporigdir
+    rm -Rf $tmpnewdir
+    fusermount -u $tmporigdir 2>/dev/null
+    test -d $tmporigdir && mdir $tmporigdir
 }
 
 trap exit_handler exit
@@ -25,11 +25,20 @@ error_exit() {
   exit 1
 }
 
+if [ $# -ne 8 ]; then
+    error_exit "Input argument error"
+fi
 
 top=$(cd `dirname $0`; pwd)
 origiso=$(cd `dirname $1`; echo `pwd`/`basename $1`)
 newiso=$(cd `dirname $2`; echo `pwd`/`basename $2`)
 tmpdir=$3
+fuelIp=$4
+fuelNetmask=$5
+fuelGateway=$6
+fuelHostname=$7
+fuelDns=$8
+
 tmporigdir=/${tmpdir}/origiso
 tmpnewdir=/${tmpdir}/newiso
 
@@ -55,10 +64,19 @@ chmod -R 755 $tmpnewdir
 echo "Patching..."
 cd $tmpnewdir
 # Patch ISO to make it suitable for automatic deployment
-cat $top/ks.cfg.patch | patch -p0 || error_exit "Failed patch 1"
-cat $top/isolinux.cfg.patch | patch -p0 || error_exit "Failed patch 2"
+cat $top/ks.cfg.patch | patch -p0 || error_exit "Failed patching ks.cfg"
 rm -rf .rr_moved
 
+# Add dynamic Fuel content
+echo "isolinux.cfg before: `grep netmask isolinux/isolinux.cfg`"
+sed -i "s/ ip=[^ ]*/ ip=$fuelIp/" isolinux/isolinux.cfg
+sed -i "s/ gw=[^ ]*/ gw=$fuelGateway/" isolinux/isolinux.cfg
+sed -i "s/ dns1=[^ ]*/ dns1=$fuelDns/" isolinux/isolinux.cfg
+sed -i "s/ netmask=[^ ]*/ netmask=$fuelNetmask/" isolinux/isolinux.cfg
+sed -i "s/ hostname=[^ ]*/ hostname=$fuelHostname/" isolinux/isolinux.cfg
+sed -i "s/ showmenu=[^ ]*/ showmenu=yes/" isolinux/isolinux.cfg
+echo "isolinux.cfg after: `grep netmask isolinux/isolinux.cfg`"
+
 echo "Creating iso $newiso"
 mkisofs -quiet -r  \
   -J -R -b isolinux/isolinux.bin \