chiark / gitweb /
path_id: fix bashism
[elogind.git] / extras / path_id / path_id
old mode 100755 (executable)
new mode 100644 (file)
index 0274be3..4941b88
@@ -96,6 +96,56 @@ handle_pci () {
        RESULT=0
 }
 
+handle_platform () {
+       local DEV=$1
+       cd -P $1
+       DEV=${PWD}
+       platform_id=${DEV##*/}
+       host_dev_path=$DEV
+       while [ ! -z "$host_dev_path" ] ; do
+               case "$host_dev_path" in
+                       */platform*)
+                               host_dev_path=${host_dev_path%/*}
+                               ;;
+                       *)
+                               break
+                               ;;
+               esac
+       done
+       if [ "$d" ]; then
+               d="platform-$platform_id-$d"
+       else
+               d="platform-$platform_id"
+       fi
+       D="$host_dev_path"
+       RESULT=0
+}
+
+handle_serio () {
+       local DEV=$1
+       cd -P $1
+       DEV=${PWD}
+       serio_id=${DEV##*/serio}
+       host_dev_path=$DEV
+       while [ ! -z "$host_dev_path" ] ; do
+               case "$host_dev_path" in
+                       */serio*)
+                               host_dev_path=${host_dev_path%/*}
+                               ;;
+                       *)
+                               break
+                               ;;
+               esac
+       done
+       if [ "$d" ]; then
+               d="serio-$serio_id-$d"
+       else
+               d="serio-$serio_id"
+       fi
+       D="$host_dev_path"
+       RESULT=0
+}
+
 handle_ide () {
        : handle_ide $*
        local DEV=$1
@@ -232,7 +282,7 @@ handle_sas () {
        sas_phy_path="${sas_phy_path%%/target*}"
        sas_phy_id="${sas_phy_path%%/*}"
        sas_rphy_id="${sas_phy_path##*/}"
-       sas_phy_dev="${sas_host_path}/${sas_phy_id}/sas_phy:${sas_phy_id}"
+       sas_phy_dev="/sys/class/sas_phy/${sas_phy_id}"
        if [ -e "$sas_phy_dev/sas_address" ]; then
                read phy_address < $sas_phy_dev/sas_address
                read phy_port < $sas_phy_dev/port_identifier
@@ -244,7 +294,7 @@ handle_sas () {
                return
        fi
        sas_phy_address="$phy_address:$phy_port:$phy_id"
-       sas_rphy_dev="${sas_host_path}/${sas_phy_id}/${sas_rphy_id}/sas_rphy:${sas_rphy_id}"
+       sas_rphy_dev="/sys/class/sas_device/${sas_rphy_id}"
        if [ -e "$sas_rphy_dev/sas_address" ]; then
                read rphy_address < $sas_rphy_dev/sas_address
                read rphy_id < $sas_rphy_dev/phy_identifier
@@ -306,7 +356,7 @@ handle_device () {
                subsys="`pwd -P`"
                cd "$OPWD"
                subsys="${subsys##*/}"
-               if [ "$subsys" == "block" ]; then
+               if [ "$subsys" = "block" ]; then
                        # parent is "block", it's a partition, move one up
                        full_sysfs_path="${full_sysfs_path%/*}"
                fi
@@ -372,6 +422,12 @@ handle_device () {
                        */pci[0-9]*:[0-9]*)
                                handle_pci "$D"
                                ;;
+                       */serio[0-9]*)
+                               handle_serio "$D"
+                               ;;
+                       */platform/*)
+                               handle_platform "$D"
+                               ;;
                        */devices)
                                D=
                                ;;
@@ -382,7 +438,7 @@ handle_device () {
                                ;;
                esac
        done
-       if [ "$TYPE" == "scsi_tape" ] ; then
+       if [ "$TYPE" = "scsi_tape" ] ; then
                devname=${full_sysfs_path##*/}
                rewind="${devname%%st*}"
                mode="${devname##*st}"