* [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>
---
| 37 ++++++++++++++++++++++++++-----------
1 files changed, 26 insertions(+), 11 deletions(-)
--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>
---
| 37 ++++++++++++++++++++++++++-----------
1 files changed, 26 insertions(+), 11 deletions(-)
--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.