make_ethtool_modes_h.sh: apply anti-bashism
authorDaniel Golle <daniel@makrotopia.org>
Thu, 31 Aug 2023 23:56:35 +0000 (00:56 +0100)
committerDaniel Golle <daniel@makrotopia.org>
Thu, 31 Aug 2023 23:56:35 +0000 (00:56 +0100)
Use 'printf' instead of 'echo -e' and use 'sed' instead of 'cut' to be
compatible with shells other than bash and not require cut.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
make_ethtool_modes_h.sh

index ec69130ec92703ebde28a6c8d3f6f67f208a99ed..7f5ac7b1de28b8ea6fec13b7b3a177b6f36f870d 100755 (executable)
@@ -38,30 +38,29 @@ EOF
 echo "#include <linux/ethtool.h>" | "$CC" -E - | \
        grep "ETHTOOL_LINK_MODE_[0-9]*base[A-Za-z0-9]*_...._BIT.*" | \
        sed -r 's/.*ETHTOOL_LINK_MODE_([0-9]*)base([A-Za-z0-9]*)_(....)_BIT.*/\1 \2 \3/' | \
-       sort -u | LC_ALL=C sort -r -g | ( gothalf=0 ; while read speed mode duplex; do
+       sort -u | LC_ALL=C sort -r -g | ( gothalf=0 ; while read -r speed mode duplex; do
                if [ "$duplex" = "Half" ]; then
                        if [ "$gothalf" = "1" ]; then
-                               echo -e "$speed \tETHTOOL_MODE_HALF($p_speed, $p_mode),"
+                               printf "%s" "$speed \tETHTOOL_MODE_HALF($p_speed, $p_mode),\n"
                        fi
                        gothalf=1
                elif [ "$duplex" = "Full" ]; then
                        if [ "$gothalf" = "1" ]; then
                                if [ "$p_speed" = "$speed" ] && [ "$p_mode" = "$mode" ]; then
-                                       echo -e "$speed \tETHTOOL_MODE_BOTH($speed, $mode),"
+                                       printf "%d \t%s\n" "$speed" "ETHTOOL_MODE_BOTH($speed, $mode),"
                                else
-                                       echo -e "$p_speed \tETHTOOL_MODE_HALF($p_speed, $p_mode),"
-                                       echo -e "$speed \tETHTOOL_MODE_FULL($speed, $mode),"
+                                       printf "%d \t%s\n" "$p_speed" "ETHTOOL_MODE_HALF($p_speed, $p_mode),"
+                                       printf "%d \t%s\n" "$speed" "ETHTOOL_MODE_FULL($speed, $mode),"
                                fi
                                gothalf=0
                        else
-                               echo -e "$speed \tETHTOOL_MODE_FULL($speed, $mode),"
+                               printf "%d \t%s\n" "$speed" "ETHTOOL_MODE_FULL($speed, $mode),"
                        fi
                else
                        continue
                fi
                p_speed="$speed"
                p_mode="$mode"
-               p_duplex="$duplex"
-       done ; [ "$gothalf" = "1" ] && echo -e "$p_speed \tETHTOOL_MODE_HALF($p_speed, $p_mode)," ) | \
-       LC_ALL=C sort -g | cut -d' ' -f2-
+       done ; [ "$gothalf" = "1" ] && printf "%d \t%s\n" "$p_speed" "ETHTOOL_MODE_HALF($p_speed, $p_mode)," ) | \
+       LC_ALL=C sort -g | sed -r 's/[0-9]* (.*)/\1/'
 echo "};"