All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kay Sievers <kay.sievers@vrfy.org>
To: linux-hotplug@vger.kernel.org
Subject: Re: scsi-devfs.sh
Date: Thu, 08 Jan 2004 11:18:52 +0000	[thread overview]
Message-ID: <20040108111852.GA2023@vrfy.org> (raw)
In-Reply-To: <200401080835.59228.remco@d-compu.dyndns.org>

On Thu, Jan 08, 2004 at 11:51:48AM +0100, Remco wrote:
> Op donderdag 08 januari 2004 11:30, schreef Kay Sievers:
> > On Thu, Jan 08, 2004 at 08:35:58AM +0100, Remco wrote:
> > > Analogous to the 'ide-devfs.sh' script, I created a 'scsi-devfs.sh'
> > > CALLOUT script. I tried to make it useful for any SCSI device. (using
> > > names taken from the Linux SCSCI 2.4 howto, so if there were any major
> > > changes in 2.6 they are not reflected in the script) Since I only own one
> > > external USB drive that's all I could test it with, so other devices have
> > > not been tested.
> > >
> > > scsi-devfs.sh:
> > >
> > > #!/bin/sh
> > >
> > > # udev CALLOUT script
> > > # return devfs-like-names for scsi-devices
> > > # CALLOUT, BUS="scsi", PROGRAM="/etc/udev/scsi-devfs.sh %k %b %n",
> > > ID="[nst*]", NAME="%1c", SYMLINK="%2c" # CALLOUT, BUS="scsi",
> > > PROGRAM="/etc/udev/scsi-devfs.sh %k %b %n", ID="[scd*]", NAME="%1c",
> > > SYMLINK="%2c" # CALLOUT, BUS="scsi", PROGRAM="/etc/udev/scsi-devfs.sh %k
> > > %b %n", ID="s[dgrt]*", NAME="%1c", SYMLINK="%2c"
> >
> > What does a character class with a asterisk ID="[nst*]" mean?
> > Shouldn't it be  ID="nst*"? Same for ID="scd*".
> 
> I don't know how I came up with those brackets but you're absolutely right !
> Correct me if I'm wrong but any rule like "ID=[???*]" would mean ID-ing every 
> device in the system and this seems pretty senseless in general.
> 

Everything inside the brackets are a character class.
A character class may contain a list of characters that should match or
a range like [0-9] or [a-z]. But everything inside is only compared with
one single char of the string.

udev's matching is partly based on fnmatch():
http://developer.novell.com/ndk/doc/libc/index.html?page=/ndk/doc/libc/libc_enu/data/amsgxku.html

You may also use only one rule in udev.rules.
Just use ID="*" and exit with nonzero in the script when no device is
matching your processing. The rule is only applied when the callout
returns successful.

thanks,
Kay



-------------------------------------------------------
This SF.net email is sponsored by: Perforce Software.
Perforce is the Fast Software Configuration Management System offering
advanced branching capabilities and atomic changes on 50+ platforms.
Free Eval! http://www.perforce.com/perforce/loadprog.html
_______________________________________________
Linux-hotplug-devel mailing list  http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel

      parent reply	other threads:[~2004-01-08 11:18 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-01-08  7:35 scsi-devfs.sh Remco
2004-01-08 10:30 ` scsi-devfs.sh Kay Sievers
2004-01-08 10:51 ` scsi-devfs.sh Remco
2004-01-08 11:18 ` Kay Sievers [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040108111852.GA2023@vrfy.org \
    --to=kay.sievers@vrfy.org \
    --cc=linux-hotplug@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.