97 lines
2.1 KiB
Diff
97 lines
2.1 KiB
Diff
--- /dev/null 2006-02-07 10:47:25.401206250 +0100
|
|
+++ udev-084/extras/udevpermconv.sh 2006-02-07 10:58:51.000000000 +0100
|
|
@@ -0,0 +1,94 @@
|
|
+#!/bin/bash
|
|
+#
|
|
+# convert old udev permissions.d file to the new rules.d format.
|
|
+# revision 2
|
|
+#
|
|
+# Written by Michael Buesch <mbuesch@freenet.de>
|
|
+# This is released into the Public Domain.
|
|
+#
|
|
+
|
|
+
|
|
+perm_file="$1"
|
|
+
|
|
+function processLine
|
|
+{
|
|
+ local line="$1"
|
|
+ if [ -z "$line" ]; then
|
|
+ echo
|
|
+ return 1
|
|
+ fi
|
|
+ if [ "`echo $line | cut -b1`" = "#" ]; then
|
|
+ # comment
|
|
+ echo "$line"
|
|
+ return 2
|
|
+ fi
|
|
+
|
|
+ local i=
|
|
+ local kern_name=
|
|
+ local owner=
|
|
+ local group=
|
|
+ local mode=
|
|
+ for ((i = 1; i <= 4; i++)); do
|
|
+ local tmp="`echo $line | cut -d: -f $i`"
|
|
+ if [ $i -eq 1 ]; then
|
|
+ kern_name="$tmp"
|
|
+ elif [ $i -eq 2 ]; then
|
|
+ owner="$tmp"
|
|
+ elif [ $i -eq 3 ]; then
|
|
+ group="$tmp"
|
|
+ elif [ $i -eq 4 ]; then
|
|
+ mode="$tmp"
|
|
+ fi
|
|
+ done
|
|
+ if [ -z "$kern_name" ]; then
|
|
+ echo "Malformed line: \"$line\"" >&2
|
|
+ return 3
|
|
+ fi
|
|
+ local need_rule="no"
|
|
+ local out="KERNEL==\"$kern_name\""
|
|
+ local kern_name_len="`echo $kern_name | wc -c`"
|
|
+ kern_name_len="`expr $kern_name_len + 9`"
|
|
+ local num_tabs="`expr 32 - $kern_name_len`"
|
|
+ num_tabs="`expr $num_tabs / 8`"
|
|
+ while [ $num_tabs -gt 0 ]; do
|
|
+ out="${out}\t"
|
|
+ num_tabs="`expr $num_tabs - 1`"
|
|
+ done
|
|
+ if [ -n "$owner" ] && [ "$owner" != "root" ]; then
|
|
+ out="${out}, OWNER=\"$owner\""
|
|
+ need_rule="yes"
|
|
+ fi
|
|
+ if [ -n "$group" ] && [ "$group" != "root" ]; then
|
|
+ out="${out}, GROUP=\"$group\""
|
|
+ need_rule="yes"
|
|
+ fi
|
|
+ if [ -n "$mode" ] && [ "$mode" != "0600" ] && [ "$mode" != "600" ]; then
|
|
+ out="${out}, MODE=\"$mode\""
|
|
+ need_rule="yes"
|
|
+ fi
|
|
+ if [ "$need_rule" = "no" ]; then
|
|
+ echo "Do not need a rule for: \"$line\" (It's udev default permissions)" >&2
|
|
+ return 4
|
|
+ fi
|
|
+ echo -e "$out"
|
|
+ return 0
|
|
+}
|
|
+
|
|
+function processInput
|
|
+{
|
|
+ echo "Converting udev permissions file. This can take a while..." >&2
|
|
+ cat $perm_file | \
|
|
+ while read line; do
|
|
+ processLine "$line"
|
|
+ done
|
|
+ echo "done." >&2
|
|
+}
|
|
+
|
|
+if ! [ -r "$perm_file" ]; then
|
|
+ echo "Could not read input file" >&2
|
|
+ echo "Usage: $0 old_permission_file > new_rules_file" >&2
|
|
+ exit 1
|
|
+fi
|
|
+
|
|
+processInput
|
|
+exit 0
|