Remove awk dependency 94/143594/3
authorSunmin Lee <sunm.lee@samsung.com>
Thu, 10 Aug 2017 11:19:32 +0000 (20:19 +0900)
committerSunmin Lee <sunm.lee@samsung.com>
Mon, 21 Aug 2017 23:45:12 +0000 (08:45 +0900)
To be optimized, awk package got out of initrd-recovery.
So, make the same code using coreutil commands instead of awk.

Change-Id: I0273848348ebc5bb97c921a0af7b8c3a554c3066
Signed-off-by: Sunmin Lee <sunm.lee@samsung.com>
packaging/initrd-fota.spec
scripts/40-fota.list
scripts/fota-init.sh
scripts/fus_rw-init.sh

index e62e7a1..f52604c 100755 (executable)
@@ -12,7 +12,6 @@ BuildRequires: gettext-tools
 Requires: util-linux
 Requires: grep
 Requires: bash
-Requires: gawk
 Requires: procps
 Requires: dbus-libs
 
index e05cef8..682ac5c 100755 (executable)
@@ -15,7 +15,6 @@ WITHLIBS="
 /bin/bash
 /bin/echo
 /bin/ls
-/bin/gawk
 /bin/tar
 /bin/chroot
 /bin/cat
@@ -31,13 +30,15 @@ WITHLIBS="
 /bin/umount
 /bin/cp
 /bin/sort
+/bin/cut
+/bin/tr
+/bin/wc
 /usr/sbin/agetty
 "
 
 # LinkFileName:Target
 SYMLINKS="
 /bin/sh:bash
-/usr/bin/awk:/bin/gawk
 /sbin/fota-init:/usr/lib/initrd-recovery/fota/fota-init.sh
 /sbin/upgrade-init:/usr/lib/initrd-recovery/fota/fota-init.sh
 /sbin/fus_rw-init:/usr/lib/initrd-recovery/fota/fus_rw-init.sh
index f4758dd..559df24 100755 (executable)
@@ -28,10 +28,13 @@ REBOOT="/sbin/reboot"
 MOUNT="/bin/mount"
 UMOUNT="/bin/umount"
 GREP="/bin/grep"
-AWK="/usr/bin/awk"
+CUT="/usr/bin/cut"
+TR="/usr/bin/tr"
 PARTX="/usr/sbin/partx"
 BLKID="/usr/sbin/blkid"
 SORT="/usr/bin/sort"
+SED="/usr/bin/sed"
+WC="/usr/bin/wc"
 
 SYSTEM_DATA_MNT=opt
 USER_MNT=opt/usr
@@ -42,15 +45,27 @@ USER_MNT=opt/usr
 get_partition_id() {
        EMMC_DEVICE="/dev/mmcblk0"
        RET_PARTX=$("$PARTX" -s ${EMMC_DEVICE})
-       TEST=$(IFS=; echo $RET_PARTX | "$AWK" 'NR>1' | "$AWK" '{print $6}')
+       TEST=$(echo "$RET_PARTX" | "$TR" -s ' ' | "$SED" -e '1d' -e 's/^ //' | "$CUT" -d ' ' -f 6)
        if [ "z$TEST" == "z" ]; then
                PART_ROOTFS=$("$BLKID" -L "rootfs" -o device)
                PART_SYSTEM_DATA=$("$BLKID" -L "system-data" -o device)
                PART_USER=$("$BLKID" -L "user" -o device)
        else
-               PART_ROOTFS=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "rootfs" {print $1}')
-               PART_SYSTEM_DATA=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "system-data" {print $1}')
-               PART_USER=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "user" {print $1}')
+               PART_ROOTFS=${EMMC_DEVICE}p$(
+                       echo "$RET_PARTX" |
+                       "$TR" -s ' ' | "$TR" '[:upper:]' '[:lower:]' |
+                       "$GREP" "rootfs" | "$SED" 's/^ //' |
+                       "$CUT" -d ' ' -f 1)
+               PART_SYSTEM_DATA=${EMMC_DEVICE}p$(
+                       echo "$RET_PARTX" |
+                       "$TR" -s ' ' | "$TR" '[:upper:]' '[:lower:]' |
+                       "$GREP" "system-data" | "$SED" 's/^ //' |
+                       "$CUT" -d ' ' -f 1)
+               PART_USER=${EMMC_DEVICE}p$(
+                       echo "$RET_PARTX" |
+                       "$TR" -s ' ' | "$TR" '[:upper:]' '[:lower:]' |
+                       "$GREP" "user" | "$SED" 's/^ //' |
+                       "$CUT" -d ' ' -f 1)
        fi
 }
 
@@ -110,15 +125,19 @@ do_create_part_table() {
 
        EMMC_DEVICE="/dev/mmcblk0"
        RET_PARTX=$("$PARTX" -s ${EMMC_DEVICE})
-       TEST=$(IFS=; echo $RET_PARTX | "$AWK" 'NR>1' | "$AWK" '{print $6}')
+       TEST=$(echo "$RET_PARTX" | "$TR" -s ' ' | "$SED" -e '1d' -e 's/^ //' | "$CUT" -d ' ' -f 6)
        if [ "z$TEST" == "z" ]; then
-               RET_PARTX=$("$BLKID" -o full | "$GREP" ${EMMC_DEVICE}p | "$SED" 's/\/dev\/mmcblk0p//g' |
-                               "$AWK" '{for (n=1;n<=NF;n++) if($n ~ "LABEL") print $1 " " toupper($n)}' |
-                               "$SED" 's/LABEL=//g' | "$SED" 's/[\"\:]//g' | "$SORT" -k 1 -n)
+               RET_PARTX=$("$BLKID" -o full | "$GREP" ${EMMC_DEVICE}p |
+                               "$SED" -e 's/\/dev\/mmcblk0p//g' -e 's/\ .*LABEL=\"\(.*\).*$/\1/' |
+                               "$CUT" -d '"' -f 1 | "$SED" 's/\:/\ /' |
+                               "$TR" '[:lower:]' '[:upper:]' |
+                               "$SORT" -k 1 -n)
        else
-               RET_PARTX=$("$PARTX" -s ${EMMC_DEVICE} | "$AWK" 'NR>1' | "$AWK" '{print $1 " " toupper($6)}')
+               RET_PARTX=$("$PARTX" -s ${EMMC_DEVICE} | "$SED" -e '1d' -e 's/^ //' |
+                               "$TR" -s ' ' | "$CUT" -d ' ' -f 1,6 |
+                               "$TR" '[:lower:]' '[:upper:]')
        fi
-       PART_NUM=$(echo "$RET_PARTX" | "$AWK" 'END{print FNR}')
+       PART_NUM=$(echo "$RET_PARTX" | "$WC" -l)
 
        echo "$PART_NUM" > ${PART_TBL_PATH}
        echo "$RET_PARTX" >> ${PART_TBL_PATH}
index 422d2aa..8eaa034 100755 (executable)
@@ -11,9 +11,11 @@ INT_LOG_FILE=${INT_LOG_DIR}/fota_internal.log
 MOUNT="/bin/mount"
 UMOUNT="/bin/umount"
 GREP="/bin/grep"
-AWK="/usr/bin/awk"
+CUT="/usr/bin/cut"
+TR="/usr/bin/tr"
 PARTX="/usr/sbin/partx"
 BLKID="/usr/sbin/blkid"
+SED="/usr/bin/sed"
 
 SYSTEM_DATA_MNT=opt
 USER_MNT=opt/usr
@@ -24,15 +26,27 @@ USER_MNT=opt/usr
 get_partition_id() {
     EMMC_DEVICE="/dev/mmcblk0"
     RET_PARTX=$("$PARTX" -s ${EMMC_DEVICE})
-    TEST=$(IFS=; echo $RET_PARTX | "$AWK" 'NR>1' | "$AWK" '{print $6}')
+    TEST=$(echo "$RET_PARTX" | "$TR" -s ' ' | "$SED" -e '1d' -e 's/^ //' | "$CUT" -d ' ' -f 6)
     if [ "z$TEST" == "z" ]; then
         PART_ROOTFS=$("$BLKID" -L "rootfs" -o device)
         PART_SYSTEM_DATA=$("$BLKID" -L "system-data" -o device)
         PART_USER=$("$BLKID" -L "user" -o device)
     else
-        PART_ROOTFS=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "rootfs" {print $1}')
-        PART_SYSTEM_DATA=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "system-data" {print $1}')
-        PART_USER=${EMMC_DEVICE}p$(IFS=; echo $RET_PARTX | "$AWK" 'tolower($6) == "user" {print $1}')
+        PART_ROOTFS=${EMMC_DEVICE}p$(
+            echo "$RET_PARTX" |
+            "$TR" -s ' ' | "$TR" '[:upper:]' '[:lower:]' |
+            "$GREP" "rootfs" | "$SED" 's/^ //' |
+            "$CUT" -d ' ' -f 1)
+        PART_SYSTEM_DATA=${EMMC_DEVICE}p$(
+            echo "$RET_PARTX" |
+            "$TR" -s ' ' | "$TR" '[:upper:]' '[:lower:]' |
+            "$GREP" "system-data" | "$SED" 's/^ //' |
+            "$CUT" -d ' ' -f 1)
+        PART_USER=${EMMC_DEVICE}p$(
+            echo "$RET_PARTX" |
+            "$TR" -s ' ' | "$TR" '[:upper:]' '[:lower:]' |
+            "$GREP" "user" | "$SED" 's/^ //' |
+            "$CUT" -d ' ' -f 1)
     fi
 }