All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] extras/keymap/findkeyboards: beautify shell code and get rid of grep
@ 2011-11-07 10:44 harald
  2011-11-07 13:54 ` harald
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: harald @ 2011-11-07 10:44 UTC (permalink / raw)
  To: linux-hotplug

From: Harald Hoyer <harald@redhat.com>

---
 extras/keymap/findkeyboards |   37 ++++++++++++++++++++++++++-----------
 1 files changed, 26 insertions(+), 11 deletions(-)

diff --git a/extras/keymap/findkeyboards b/extras/keymap/findkeyboards
index 5d636de..537d163 100755
--- a/extras/keymap/findkeyboards
+++ b/extras/keymap/findkeyboards
@@ -14,6 +14,20 @@
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 # General Public License for more details.
 
+# returns OK if $1 contains $2
+strstr() {
+    [ "${1#*$2*}" != "$1" ]
+}
+
+# returns OK if $1 contains $2 at the beginning
+str_starts() {
+    [ "${1#$2*}" != "$1" ]
+}
+
+str_line_starts() {
+    while read a; do str_starts "$a" "$1" && return 0;done
+    return 1;
+}
 
 # print a list of input devices which are keyboard-like
 keyboard_devices() {
@@ -23,12 +37,12 @@ keyboard_devices() {
         env=`udevadm info --query=env --path=$dev`
         # filter out non-event devices, such as the parent input devices which
         # have no devnode
-        if ! echo "$env" | grep -q '^DEVNAME='; then
+        if ! echo "$env" | str_line_starts 'DEVNAME='; then
             continue
         fi
-        if echo "$walk" | grep -q 'DRIVERS="atkbd"'; then
+        if strstr "$walk" 'DRIVERS="atkbd"'; then
             echo -n 'AT keyboard: '
-        elif echo "$env" | grep -q '^ID_USB_DRIVER=usbhid'; then
+        elif echo "$env" | str_line_starts 'ID_USB_DRIVER=usbhid'; then
             echo -n 'USB keyboard: '
         else
             echo -n 'Unknown type: '
@@ -37,17 +51,18 @@ keyboard_devices() {
     done
 
     # modules
-    module=`udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='*Extra Buttons'`
+    module=$(udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='*Extra Buttons')
     module="$module
-`udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='*extra buttons'`"
+$(udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='*extra buttons')"
     module="$module
-`udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='Sony Vaio Keys'`"
+$(udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='Sony Vaio Keys')"
     for m in $module; do
-        evdev=`ls -d $m/event* 2>/dev/null`
-        if [ -e "$evdev/dev" ]; then
-            echo -n 'module: '
-            udevadm info --query=name --path=$evdev
-        fi
+        for evdev in $m/event*/dev; do
+            if [ -e "$evdev" ]; then
+		echo -n 'module: '
+		udevadm info --query=name --path=${evdev%%/dev}
+            fi
+	done
     done
 }
 
-- 
1.7.6.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH] extras/keymap/findkeyboards: beautify shell code and get rid of grep
  2011-11-07 10:44 [PATCH] extras/keymap/findkeyboards: beautify shell code and get rid of grep harald
@ 2011-11-07 13:54 ` harald
  2011-11-07 13:56 ` [PATCH] extras/keymap/findkeyboards: beautify shell code and Harald Hoyer
  2011-11-07 16:54 ` [PATCH] extras/keymap/findkeyboards: beautify shell code and get Martin Pitt
  2 siblings, 0 replies; 4+ messages in thread
From: harald @ 2011-11-07 13:54 UTC (permalink / raw)
  To: linux-hotplug

From: Harald Hoyer <harald@redhat.com>

- save some extra forks and grep with shell code instead of calling
  grep
- use $() instead of backticks (improves readability and addes
  nesting capabilities)

Signed-off-by: Harald Hoyer <harald@redhat.com>
---
 extras/keymap/findkeyboards |   37 ++++++++++++++++++++++++++-----------
 1 files changed, 26 insertions(+), 11 deletions(-)

diff --git a/extras/keymap/findkeyboards b/extras/keymap/findkeyboards
index 5d636de..537d163 100755
--- a/extras/keymap/findkeyboards
+++ b/extras/keymap/findkeyboards
@@ -14,6 +14,20 @@
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 # General Public License for more details.
 
+# returns OK if $1 contains $2
+strstr() {
+    [ "${1#*$2*}" != "$1" ]
+}
+
+# returns OK if $1 contains $2 at the beginning
+str_starts() {
+    [ "${1#$2*}" != "$1" ]
+}
+
+str_line_starts() {
+    while read a; do str_starts "$a" "$1" && return 0;done
+    return 1;
+}
 
 # print a list of input devices which are keyboard-like
 keyboard_devices() {
@@ -23,12 +37,12 @@ keyboard_devices() {
         env=`udevadm info --query=env --path=$dev`
         # filter out non-event devices, such as the parent input devices which
         # have no devnode
-        if ! echo "$env" | grep -q '^DEVNAME='; then
+        if ! echo "$env" | str_line_starts 'DEVNAME='; then
             continue
         fi
-        if echo "$walk" | grep -q 'DRIVERS="atkbd"'; then
+        if strstr "$walk" 'DRIVERS="atkbd"'; then
             echo -n 'AT keyboard: '
-        elif echo "$env" | grep -q '^ID_USB_DRIVER=usbhid'; then
+        elif echo "$env" | str_line_starts 'ID_USB_DRIVER=usbhid'; then
             echo -n 'USB keyboard: '
         else
             echo -n 'Unknown type: '
@@ -37,17 +51,18 @@ keyboard_devices() {
     done
 
     # modules
-    module=`udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='*Extra Buttons'`
+    module=$(udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='*Extra Buttons')
     module="$module
-`udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='*extra buttons'`"
+$(udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='*extra buttons')"
     module="$module
-`udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='Sony Vaio Keys'`"
+$(udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='Sony Vaio Keys')"
     for m in $module; do
-        evdev=`ls -d $m/event* 2>/dev/null`
-        if [ -e "$evdev/dev" ]; then
-            echo -n 'module: '
-            udevadm info --query=name --path=$evdev
-        fi
+        for evdev in $m/event*/dev; do
+            if [ -e "$evdev" ]; then
+		echo -n 'module: '
+		udevadm info --query=name --path=${evdev%%/dev}
+            fi
+	done
     done
 }
 
-- 
1.7.6.4


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] extras/keymap/findkeyboards: beautify shell code and
  2011-11-07 10:44 [PATCH] extras/keymap/findkeyboards: beautify shell code and get rid of grep harald
  2011-11-07 13:54 ` harald
@ 2011-11-07 13:56 ` Harald Hoyer
  2011-11-07 16:54 ` [PATCH] extras/keymap/findkeyboards: beautify shell code and get Martin Pitt
  2 siblings, 0 replies; 4+ messages in thread
From: Harald Hoyer @ 2011-11-07 13:56 UTC (permalink / raw)
  To: linux-hotplug

On 07.11.2011 14:54, harald@redhat.com wrote:
> From: Harald Hoyer <harald@redhat.com>
> 
> - save some extra forks and grep with shell code instead of calling
>   grep
> - use $() instead of backticks (improves readability and addes
>   nesting capabilities)
> 
> Signed-off-by: Harald Hoyer <harald@redhat.com>

resent with more commit info

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] extras/keymap/findkeyboards: beautify shell code and get
  2011-11-07 10:44 [PATCH] extras/keymap/findkeyboards: beautify shell code and get rid of grep harald
  2011-11-07 13:54 ` harald
  2011-11-07 13:56 ` [PATCH] extras/keymap/findkeyboards: beautify shell code and Harald Hoyer
@ 2011-11-07 16:54 ` Martin Pitt
  2 siblings, 0 replies; 4+ messages in thread
From: Martin Pitt @ 2011-11-07 16:54 UTC (permalink / raw)
  To: linux-hotplug

Hello Harald,

harald@redhat.com [2011-11-07 14:54 +0100]:
> - save some extra forks and grep with shell code instead of calling
>   grep
> - use $() instead of backticks (improves readability and addes
>   nesting capabilities)

Thanks! Applied.

Martin
-- 
Martin Pitt                        | http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-11-07 16:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-07 10:44 [PATCH] extras/keymap/findkeyboards: beautify shell code and get rid of grep harald
2011-11-07 13:54 ` harald
2011-11-07 13:56 ` [PATCH] extras/keymap/findkeyboards: beautify shell code and Harald Hoyer
2011-11-07 16:54 ` [PATCH] extras/keymap/findkeyboards: beautify shell code and get Martin Pitt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.