chiark / gitweb /
path_id: fix bashism
[elogind.git] / extras / path_id / path_id
index 7f0d53a1808181e48dff13891769d383d33c89b3..4941b88a452c73541dee747036013f94183e88f8 100644 (file)
@@ -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
@@ -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}"