~ubuntu-branches/ubuntu/breezy/joystick/breezy

« back to all changes in this revision

Viewing changes to debian/joystick-device-check

  • Committer: Bazaar Package Importer
  • Author(s): Edward Betts
  • Date: 2001-12-26 13:32:55 UTC
  • Revision ID: james.westby@ubuntu.com-20011226133255-ks0knlw3ln1jd4d4
Tags: 20010903-2
* debian/control: updated Standards-Version.
* debian/control: added version number to debhelper Build-Depends.
* debian/copyright: improved with more text from the GPL and a description
  of changes to the package.
* debian/template: German translation from Sebastian Feltel
  <sebastian@feltel.de>. (Closes: Bug#119939)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/perl
 
2
 
 
3
sub err {
 
4
   print STDERR $_[0];
 
5
   exit 1;
 
6
}
 
7
 
 
8
sub fix {
 
9
   # remove old nodes, create new, restore permisions
 
10
   unlink $_[0];
 
11
   system("mknod ".$_[0]." c ".$_[1]." ".$_[2]);
 
12
   chmod $_[3], $_[0];
 
13
   chown $_[4], $_[5], $_[0];
 
14
}
 
15
 
 
16
# new kernel detection
 
17
open(fh,"</proc/version");
 
18
if(<fh> =~ /Linux version \d\.(\d)\.\d/) {
 
19
   $newvers = $1 if($1 > 3);
 
20
}
 
21
else {
 
22
   err("/proc not mounted, aborting.");
 
23
}
 
24
 
 
25
@nodes = </dev/js*>;
 
26
err("Oops, please create some joystick device nodes with MAKEDEV first!") if($#nodes < 0);
 
27
 
 
28
# read modes and resolve links when needed
 
29
for(@nodes) {
 
30
   @mode = lstat;
 
31
   if(!defined($newvers) && ($mode[6] < 3500) ) { # old kernel, new device
 
32
      $rec = 1;
 
33
      fix($_, 15, ($mode[6] % 256), $mode[2], $mode[4], $mode[5]);
 
34
      print "Recreating $_\n";
 
35
   }
 
36
   if(defined($newvers) && ($mode[6] > 3500) ) { # new kernel, old device
 
37
      $rec = 1;
 
38
      fix($_, 13, ($mode[6] % 256), $mode[2], $mode[4], $mode[5]);
 
39
      print "Recreating $_\n";
 
40
   }
 
41
}
 
42
if(!defined($rec)) { print "device files are okay!\n" }