support/cloud-image-builder/cloud-image-build.sh
624d1cc2
 #!/bin/bash
 
 #################################################
 #	Title:	cloud-image-build.sh		#
 #        Date:	2015-07-22   	 		#
 #     Version:	1.0				#
 #      Author:	anishs@vmware.com		#
 #################################################
 #	Overview
 #		Create cloud images
 #	End
 #
 set -x
c20a93b2
 BUILD_SCRIPTS_PATH=$1
 IMG_NAME=$2
 SRC_ROOT=$3
 GENERATED_DATA_PATH=$4
23cb2070
 PHOTON_ISO_PATH=$5
 PHOTON_STAGE_PATH=${PHOTON_ISO_PATH%/*}
c20a93b2
 ADDITIONAL_RPMS_PATH=$6
8ff5c437
 WORKING_DIR=$PHOTON_STAGE_PATH/$IMG_NAME
624d1cc2
 
 PHOTON_IMG_OUTPUT_PATH=$PHOTON_STAGE_PATH/$IMG_NAME
c20a93b2
 VMDK_CONFIG_FILE=${BUILD_SCRIPTS_PATH}/$IMG_NAME/vmdk_$IMG_NAME.json
 VMDK_CONFIG_SAFE_FILE=${BUILD_SCRIPTS_PATH}/$IMG_NAME/vmdk_safe_$IMG_NAME.json
624d1cc2
 
e8c90151
 cd $BUILD_SCRIPTS_PATH
 image_list=`for i in $(ls -d */); do echo ${i%%/}; done`
 if ! [[ $image_list =~ (^|[[:space:]])$IMG_NAME($|[[:space:]]) ]]
   then
     echo "Input image name not supported. Aborting."; exit 1;
 fi
 
8ff5c437
 rm -rf $WORKING_DIR
 mkdir -p $WORKING_DIR/installer
 cp -R $SRC_ROOT/installer $WORKING_DIR/
624d1cc2
 
8ff5c437
 cd $WORKING_DIR/installer
624d1cc2
 cp $VMDK_CONFIG_FILE $VMDK_CONFIG_SAFE_FILE
c20a93b2
 cp ${BUILD_SCRIPTS_PATH}/mk-setup-vmdk.sh .
 cp ${BUILD_SCRIPTS_PATH}/mk-clean-vmdk.sh .
239730f8
 
8ff5c437
 if [[ $IMG_NAME == ova* ]]
   then
     command -v ovftool >/dev/null 2>&1 || { echo "Ovftool not installed. Aborting." >&2; exit 1; }
 fi
624d1cc2
 
c20a93b2
 if [ -e ${BUILD_SCRIPTS_PATH}/${IMG_NAME}/mk-setup-grub.sh ]
624d1cc2
   then
c20a93b2
     cp ${BUILD_SCRIPTS_PATH}/${IMG_NAME}/mk-setup-grub.sh .
624d1cc2
 fi
 
c20a93b2
 PASSWORD=`date | md5sum | cut -f 1 -d ' '`
 sed -i "s/PASSWORD/$PASSWORD/" $VMDK_CONFIG_SAFE_FILE
624d1cc2
 
c20a93b2
 if [ -n "$ADDITIONAL_RPMS_PATH" ]
624d1cc2
   then
8ff5c437
     mkdir $PHOTON_STAGE_PATH/RPMS/additional
     cp -f $ADDITIONAL_RPMS_PATH/* $PHOTON_STAGE_PATH/RPMS/additional/
624d1cc2
 fi
 
b944098f
 ./photonInstaller.py -p $GENERATED_DATA_PATH/build_install_options_$IMG_NAME.json -r $PHOTON_STAGE_PATH/RPMS -v $WORKING_DIR/photon-${IMG_NAME} -o $GENERATED_DATA_PATH -d $PHOTON_STAGE_PATH/pkg_info.json -f $VMDK_CONFIG_SAFE_FILE
7e59b7e3
 cat $VMDK_CONFIG_SAFE_FILE
624d1cc2
 rm $VMDK_CONFIG_SAFE_FILE
 
c20a93b2
 cd $BUILD_SCRIPTS_PATH
624d1cc2
 
8ff5c437
 ./customize_cloud_image.py \
  -r ${PHOTON_IMG_OUTPUT_PATH}/photon-${IMG_NAME}.raw \
  -c $VMDK_CONFIG_FILE \
  -w $WORKING_DIR \
  -m $PHOTON_IMG_OUTPUT_PATH/photon-${IMG_NAME} \
  -a $PHOTON_STAGE_PATH/RPMS/additional \
  -i $IMG_NAME \
  -t $SRC_ROOT/tools/bin/ \
  -b $BUILD_SCRIPTS_PATH
 
 rm -rf $WORKING_DIR/installer
5462e062
 
 exit 0