]> git.ozlabs.org Git - yaboot.git/blobdiff - ybin/ofpath
make: use STRIP
[yaboot.git] / ybin / ofpath
index cb4198e720eee954ef3866692c9ae499428ffcce..4892d8c755717a8a55f75e9ec246fcd22d36fffc 100755 (executable)
@@ -116,15 +116,41 @@ linecount()
 ## small tr replacment which handles a specific need of this script.
 smalltr()
 {
-    case "$1" in
-       a) echo 1 ;; b) echo 2 ;; c) echo 3 ;; d) echo 4 ;; e) echo 5 ;; f) echo 6 ;;
-       g) echo 7 ;; h) echo 8 ;; i) echo 9 ;; j) echo 10 ;; k) echo 11 ;; l) echo 12 ;;
-       m) echo 13 ;; n) echo 14 ;; o) echo 15 ;; p) echo 16 ;;
-       1) echo a ;; 2) echo b ;; 3) echo c ;; 4) echo d ;; 5) echo e ;;
-       6) echo f ;; 7) echo g ;; 8) echo h ;; 9) echo i ;; 10) echo j ;;
-       11) echo k ;; 12) echo l ;; 13) echo m ;; 14) echo n ;; 15) echo o ;;
-       16) echo p ;;
-    esac
+        local i a d t val out mod cur
+
+        val="$1"
+        out="0"
+
+        d=$(printf "%d\n" \'${val:0:1})
+
+        if (( $d > 57 )) ; then  # is a letter
+                for ((i=0; i < ${#val}; i++)) ; do
+                        d=$(printf "%d\n" \'${val:$i:1})
+                        a=$(($d - 96))
+                        out=$(($out * 26))
+                        out=$(($out + $a))
+                done
+
+        else  # is a number
+                t=$val
+                out=""
+
+                while ((t != 0)) ; do
+                        mod=$(($t % 26))
+                        t=$(($t / 26))
+                        if (($mod == 0)) ; then
+                                cur="z"
+                                t=$(($t - 1))
+                        else
+                                mod=$(($mod + 96))
+                                cur=$(echo $mod | gawk '{printf "%c", $1}')
+                        fi
+                        out="$cur$out"
+                done
+        fi
+
+        echo "$out"
+
     return 0
 }
 
@@ -259,17 +285,20 @@ scsiinfo()
        [ "$DEBUG" = 1 ] && echo 1>&2 "$PRG: DEBUG: DEVHOST=$DEVHOST"
 
        if [ "$DEVTYPE" = "Direct-Access" ] || [ "$DEVTYPE" = "Direct-Access-RBC" ] ; then
-           DEVCOUNT="$(($DEVCOUNT + 1))"
-           [ "$DEBUG" = 1 ] && echo 1>&2 "$PRG: DEBUG: DEVCOUNT=$DEVCOUNT"
-           if [ "$SUBDEV" = "$DEVCOUNT" ] ; then
-               DEVICE_HOST=$DEVHOST
-               DEVICE_BUS=$DEVBUS
-               DEVICE_ID=$DEVID
-               DEVICE_LUN=$DEVLUN
-               [ "$DEBUG" = 1 ] && echo 1>&2 "$PRG: DEBUG: DEVICE_HOST=$DEVICE_HOST"
-               break
-           fi
-       fi
+           ls /sys/bus/scsi/devices/$DEVHOST:$DEVBUS:$DEVID:$DEVLUN/scsi_disk* > /dev/null 2>&1
+           if [ $? -eq 0 ] ; then
+                DEVCOUNT="$(($DEVCOUNT + 1))"
+                [ "$DEBUG" = 1 ] && echo 1>&2 "$PRG: DEBUG: DEVCOUNT=$DEVCOUNT"
+                if [ "$SUBDEV" = "$DEVCOUNT" ] ; then
+                        DEVICE_HOST=$DEVHOST
+                        DEVICE_BUS=$DEVBUS
+                        DEVICE_ID=$DEVID
+                        DEVICE_LUN=$DEVLUN
+                        [ "$DEBUG" = 1 ] && echo 1>&2 "$PRG: DEBUG: DEVICE_HOST=$DEVICE_HOST"
+                        break
+                fi
+            fi
+        fi
     done
 
     ## figure out what the scsi driver is, it is /proc/scsi/dirname.