[TCT][Scripts][NonACR]Feature added to use latest rootstrap 48/286648/6
authorPrashant Kumar Jangid <p.jangid@samsung.com>
Wed, 11 Jan 2023 05:28:17 +0000 (10:58 +0530)
committershobhit verma <shobhit.v@samsung.com>
Wed, 11 Jan 2023 09:13:48 +0000 (09:13 +0000)
-If rootstrap.txt file is empty then use latest installed rootstrap in the system.

Change-Id: I54f30d70045c91946b0ab928057f4a4b7ba9337d
Signed-off-by: Prashant Kumar Jangid <p.jangid@samsung.com>
scripts_tpk/tpk_create.sh

index 6eb87dce2097c025337d73131a3b54b605d429d9..ab911e1cb03bb4a03186b2ff8fba276d03c2f6b7 100755 (executable)
@@ -548,7 +548,32 @@ deploySourceFile() {
 
        cd $2/../../../scripts_tpk
 }
+getlatestrootstrap() {
 
+       SEARCH_PROFILE=$1
+       SEARCH_DEVICE=$2
+       SEARCH_VERSION=$3
+       if [ "$4" = "x86" ]; then
+               SEARCH_ARCHITECTURE="i586"
+       else
+               SEARCH_ARCHITECTURE=$4
+       fi
+       echo $yellow"Getting latest Rootstrap information"$reset
+       ROOTSTRAP_LIST=`tizen list rootstrap | grep "${SEARCH_PROFILE}" | grep "${SEARCH_DEVICE}" | grep "${SEARCH_VERSION}" | grep "${SEARCH_ARCHITECTURE}" | cut -f1 -d' '`
+       LATEST_DATE=""
+       EXISTING_ROOTSTRAP=""
+       ROOTSTRAP_STRING_ARRAY=($ROOTSTRAP_LIST)
+       for ROOTSTRAP_NAME in "${ROOTSTRAP_STRING_ARRAY[@]}";
+       do
+               DATE_STR="cut -d'.' -f5 <<<$ROOTSTRAP_NAME"  #extracting date string from rootstrap name and finding the latest date and rootstrap
+               if [[ "$DATE_STR" > "$LATEST_DATE" ]] && [[ ! -z "$DATE_STR" ]];  then
+                       LATEST_DATE=$DATE_STR
+                       EXISTING_ROOTSTRAP=$ROOTSTRAP_NAME
+               fi
+       done
+       echo $bold$green$"Latest rootstrap is : $EXISTING_ROOTSTRAP"$reset
+
+}
 checkRootstrap() {
        ROOTSTRAP_TYPE=$1
        PROFILE_TYPE=$2
@@ -556,7 +581,20 @@ checkRootstrap() {
        CURRENT_VERSION=$4
        if [ -z "$ROOTSTRAP_TYPE" ]; then
                echo $yellow"rootstrap.txt file is empty."$reset
-               EXISTING_ROOTSTRAP=`tizen list rootstrap | grep "${PROFILE_TYPE}" | grep "${DEVICE_TYPE}" | grep "${CURRENT_VERSION}" | cut -f1 -d' ' |grep -v "public"`
+               getlatestrootstrap $PROFILE_TYPE $DEVICE_TYPE $CURRENT_VERSION $ARCHITECTURE
+
+               if [ $PROFILE_TYPE=="mobile" ]; then
+                       ROOTSTRAP_MOBILE=$EXISTING_ROOTSTRAP
+               fi
+               if [ $PROFILE_TYPE=="tv" ]; then
+                       ROOTSTRAP_TV=$EXISTING_ROOTSTRAP
+               fi
+               if [ $PROFILE_TYPE=="wearable" ]; then
+                       ROOTSTRAP_WEARABLE=$EXISTING_ROOTSTRAP
+               fi
+               if [ $PROFILE_TYPE=="tizeniot" ]; then
+                       ROOTSTRAP_TIZENIOT=$EXISTING_ROOTSTRAP
+               fi
                if [ -z "$EXISTING_ROOTSTRAP" ]; then
                        echo $red"Default rootstrap is not installed for ${CURRENT_VERSION} version"$reset
                        OPTIONAL_ROOTSTRAP=`tizen list rootstrap | grep "${PROFILE_TYPE}" | grep "${DEVICE_TYPE}" | grep "${CURRENT_VERSION}" | cut -f1 -d' ' |grep -i "public"`
@@ -723,15 +761,16 @@ echo "[APPLLICATION_PROFILE] : $APPLLICATION_PROFILE"
 RunCommand "tizen create native-project -p $BUILD_PROFILE-6.0 -t $APPLLICATION_PROFILE -n $PROJECT_NAME -- $WORKSPACE_PATH" "Project creation $PROJECT_NAME"
 deploySourceFile "$WORKSPACE_PATH/$PROJECT_NAME" "$SRC_DIRCTORY/$TESTCASE_TYPE/$MODULE_NAME" "$PROFILE_TYPE" "$PROJECT_NAME" "$TESTCASE_TYPE" "$MODULE_NAME"
 
+
 #Checking rootstrap
 if [ $PROFILE_TYPE == "mobile" ]; then
-       checkRootstrap "$ROOTSTRAP_MOBILE" $PROFILE_TYPE $DEVICE_TYPE $CURRENT_VERSION
+       checkRootstrap "$ROOTSTRAP_MOBILE" $PROFILE_TYPE $DEVICE_TYPE $CURRENT_VERSION $ARCH_TYPE
 elif [ $PROFILE_TYPE == "wearable" ]; then
-       checkRootstrap "$ROOTSTRAP_WEARABLE" $PROFILE_TYPE $DEVICE_TYPE $CURRENT_VERSION
+       checkRootstrap "$ROOTSTRAP_WEARABLE" $PROFILE_TYPE $DEVICE_TYPE $CURRENT_VERSION $ARCH_TYPE
 elif [ $PROFILE_TYPE == "tizeniot" ]; then
-       checkRootstrap "$ROOTSTRAP_TIZENIOT" $PROFILE_TYPE $DEVICE_TYPE $CURRENT_VERSION
+       checkRootstrap "$ROOTSTRAP_TIZENIOT" $PROFILE_TYPE $DEVICE_TYPE $CURRENT_VERSION $ARCH_TYPE
 elif [ $PROFILE_TYPE == "tv" ]; then
-       checkRootstrap "$ROOTSTRAP_TV" $PROFILE_TYPE $DEVICE_TYPE $CURRENT_VERSION
+       checkRootstrap "$ROOTSTRAP_TV" $PROFILE_TYPE $DEVICE_TYPE $CURRENT_VERSION $ARCH_TYPE
 fi
 
 if [ $BUILD_PROFILE == "wearable" ]; then