chiark / gitweb /
[PATCH] fix Silly udev script
authorkay.sievers@vrfy.org <kay.sievers@vrfy.org>
Sat, 10 Jan 2004 09:04:13 +0000 (01:04 -0800)
committerGreg KH <gregkh@suse.de>
Wed, 27 Apr 2005 04:13:14 +0000 (21:13 -0700)
Hey, this is funny.
I couldn't resist to give it a try and we need a few changes:

  - it's %2c otherwise nearly all my CD's are "good", but sure I also have bad ones :)
  - remove the node first, cause get_cddb() dies and leaves the old one there
  - remove spaces in name, cause this is our separator

/udev/
|-- The_Cure-The_Peel_Sessions
|-- cdrom -> ./The_Cure-The_Peel_Sessions
|-- hda
|-- hda1
|-- hda2
|-- hda4

extras/name_cdrom.pl

index 569b119..7a14e86 100644 (file)
@@ -2,8 +2,8 @@
 
 # a horribly funny script that shows how flexible udev can really be
 # This is to be executed by udev with the following rules:
-# CALLOUT, BUS="ide", PROGRAM="name_cdrom.pl %M %m", ID="good*", NAME="%1c", SYMLINK="cdrom" 
-# CALLOUT, BUS="scsi", PROGRAM="name_cdrom.pl %M %m", ID="good*", NAME="%1c", SYMLINK="cdrom" 
+# CALLOUT, BUS="ide", PROGRAM="name_cdrom.pl %M %m", ID="good*", NAME="%2c", SYMLINK="cdrom"
+# CALLOUT, BUS="scsi", PROGRAM="name_cdrom.pl %M %m", ID="good*", NAME="%2c", SYMLINK="cdrom"
 #
 # The scsi rule catches USB cdroms and ide-scsi devices.
 #
@@ -27,9 +27,10 @@ $major = $ARGV[0];
 $minor = $ARGV[1];
 
 # create our temp device node to read the cd info from
+unlink($dev_node);
 if (system("mknod $dev_node b $major $minor")) {
        die "bad mknod failed";
-       }
+}
 
 # get it on
 my %cd=get_cddb(\%config);
@@ -41,5 +42,7 @@ unlink($dev_node);
 unless(defined $cd{title}) {
        print"bad unknown cdrom\n";
 } else {
-       print "good $cd{artist}_$cd{title}\n";
+       $cd{artist} =~ s/ /_/g;
+       $cd{title} =~ s/ /_/g;
+       print "good $cd{artist}-$cd{title}\n";
 }