summaryrefslogtreecommitdiffstats
path: root/dilos/tdebase/debian/usermap.pl
diff options
context:
space:
mode:
authorDenis Kozadaev <denis@dilos.org>2020-01-30 22:13:12 +0300
committerSlávek Banko <slavek.banko@axis.cz>2020-03-02 23:40:36 +0100
commit54987baa2946868ae04e93090d4da5693afaa3b1 (patch)
tree6a989c0fb1d22986af268dcd240803f52a60b433 /dilos/tdebase/debian/usermap.pl
parent5593d90a563fc02f6baf3316388f13b9b8957cd0 (diff)
downloadtde-packaging-54987baa2946868ae04e93090d4da5693afaa3b1.tar.gz
tde-packaging-54987baa2946868ae04e93090d4da5693afaa3b1.zip
DilOS: tdebase build pack
Signed-off-by: Denis Kozadaev <denis@dilos.org> (cherry picked from commit 042414011edfd405230b65e77e2b14870852760f)
Diffstat (limited to 'dilos/tdebase/debian/usermap.pl')
-rw-r--r--dilos/tdebase/debian/usermap.pl59
1 files changed, 59 insertions, 0 deletions
diff --git a/dilos/tdebase/debian/usermap.pl b/dilos/tdebase/debian/usermap.pl
new file mode 100644
index 000000000..9c8c61f26
--- /dev/null
+++ b/dilos/tdebase/debian/usermap.pl
@@ -0,0 +1,59 @@
+#!/usr/bin/perl
+
+# Copyright (C) 2005 Mandriva
+# Olivier Blin
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+my %flags = (
+ idVendor => 0x0001,
+ idProduct => 0x0002,
+);
+
+sub parse_usermap_line {
+ local $_ = shift;
+ /^#/ and next;
+ my %match;
+ @match{module, match_flags, idVendor, idProduct} =
+ /^(\S+)\s+0x(\w{2,})\s+0x(\w{2,})\s+0x(\w{2,})\s+0x(\w{2,})\s+0x(\w{2,})\s+0x(\w{2})\s+0x(\w{2})\s+0x(\w{2})\s+0x(\w{2})\s+0x(\w{2})\s+0x(\w{2})(?:\s+0x(\w{2,}))?/
+ or die qq(unable to parse line "$_");
+ $match{match_flags} = hex($match{match_flags});
+ $match{driver_info} ||= 0;
+
+ my @rule;
+ while (my ($key, $flag) = each(%flags)) {
+ hex($match{match_flags}) & $flag and push @rule, qq(SYSFS{$key}=="$match{$key}",);
+ }
+ push @rule,
+ (
+ qq(MODE="660",),
+ );
+ push @rule,
+ (
+ qq(GROUP="plugdev"),
+ );
+ print join(' ', @rule) . "\n";
+}
+
+print "BUS!=\"usb\", GOTO=\"kcontrol_rules_end\"\n";
+print "ACTION!=\"add\"\, GOTO=\"kcontrol_rules_end\"\n";
+print "SUBSYSTEM!=\"usb_device\"\, GOTO=\"kcontrol_rules_end\"\n\n";
+
+foreach my $usermap (@ARGV) {
+ open(my $IN, $usermap . (-x $usermap && "|")) or die "unable to open usermap $usermap";
+ parse_usermap_line($_) foreach <$IN>;
+}
+
+print "\nLABEL=\"kcontrol_rules_end\"\n";