linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* write_cd_rules: identity-based persistence
@ 2006-11-24 18:58 Bryan Kadzban
  2006-11-26 14:31 ` Marco d'Itri
  2006-11-26 19:13 ` Bryan Kadzban
  0 siblings, 2 replies; 3+ messages in thread
From: Bryan Kadzban @ 2006-11-24 18:58 UTC (permalink / raw)
  To: linux-hotplug


[-- Attachment #1.1.1: Type: text/plain, Size: 738 bytes --]

This is a sort of follow-up of my path-based persistence patch for net
devices; it's the opposite type of addition for CD symlinks.  Passing
by-path or by-id to the write_cd_rules script tells it to generate the
original path-based rules, or ID-based rules.

(ID-based rules use $ID_SERIAL if available, and the combination of
$ID_MODEL and $ID_REVISION otherwise.  All are provided by ata_id, if
they're provided by the CD drive, so ata_id needs to be run before
write_cd_rules.)

If no $1 is provided, it gets set to by-path, which avoids having to
change distros' current rules files.  I've also changed the
75-cd-aliases-generator.rules file in this patch, but this change is not
strictly necessary for the script to work.

Comments?

[-- Attachment #1.1.2: udev-103-cd-by-id.patch --]
[-- Type: text/plain, Size: 1690 bytes --]

--- udev-103/extras/rule_generator/75-cd-aliases-generator.rules	2006-10-20 08:43:35.000000000 -0400
+++ udev-103-patched/extras/rule_generator/75-cd-aliases-generator.rules	2006-11-24 13:49:08.000000000 -0500
@@ -1,3 +1,3 @@
 # these rules generate rules for the /dev/{cdrom,dvd,...} symlinks
 
-ACTION=="add", SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{GENERATED}!="?*", PROGRAM="write_cd_rules", SYMLINK+="%c"
+ACTION=="add", SUBSYSTEM=="block", ENV{ID_CDROM}=="?*", ENV{GENERATED}!="?*", PROGRAM="write_cd_rules by-path", SYMLINK+="%c"
--- udev-103/extras/rule_generator/write_cd_rules	2006-10-20 08:43:35.000000000 -0400
+++ udev-103-patched/extras/rule_generator/write_cd_rules	2006-11-24 13:45:43.000000000 -0500
@@ -50,6 +50,35 @@
 	exit 1
 fi
 
+[ -z "$1" ] && set -- "by-path"
+
+case "$1" in
+	by-path)
+		if [ -z "$ID_PATH" ]; then
+			echo "$DEVPATH not supported by path_id.  by-id may work." >&2
+			exit 1
+		fi
+
+		RULE="ENV{ID_PATH}==\"$ID_PATH\""
+		;;
+	by-id)
+		if [ "$ID_SERIAL" ]; then
+			RULE="ENV{ID_SERIAL}==\"$ID_SERIAL\""
+		else
+			if [ -z "$ID_MODEL" -o -z "$ID_REVISION" ]; then
+				echo "$DEVPATH not supported by ata_id.  by-path may work." >&2
+				exit 1
+			fi
+
+			RULE="ENV{ID_MODEL}==\"$ID_MODEL\", ENV{ID_REVISION}==\"$ID_REVISION\""
+		fi
+		;;
+	*)
+		echo "Invalid first argument (must be either by-path or by-id)." >&2
+		exit 1
+		;;
+esac
+
 # Prevent concurrent processes from modifying the file at the same time.
 lock_rules_file
 
@@ -58,7 +87,7 @@
 
 link_num=$(find_next_available 'cdrom[0-9]*')
 
-match="ENV{ID_CDROM}==\"?*\", ENV{ID_PATH}==\"$ID_PATH\""
+match="ENV{ID_CDROM}==\"?*\", $RULE"
 
 comment="$ID_MODEL ($ID_PATH)"
 

[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 258 bytes --]

[-- Attachment #2: Type: text/plain, Size: 347 bytes --]

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

[-- Attachment #3: Type: text/plain, Size: 226 bytes --]

_______________________________________________
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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: write_cd_rules: identity-based persistence
  2006-11-24 18:58 write_cd_rules: identity-based persistence Bryan Kadzban
@ 2006-11-26 14:31 ` Marco d'Itri
  2006-11-26 19:13 ` Bryan Kadzban
  1 sibling, 0 replies; 3+ messages in thread
From: Marco d'Itri @ 2006-11-26 14:31 UTC (permalink / raw)
  To: linux-hotplug


[-- Attachment #1.1.1: Type: text/plain, Size: 324 bytes --]

On Nov 24, Bryan Kadzban <bryan@kadzban.is-a-geek.net> wrote:

> This is a sort of follow-up of my path-based persistence patch for net
> devices; it's the opposite type of addition for CD symlinks.  Passing
Looks good. I am attaching a slightly reformatted version, I think it
should be applied.

-- 
ciao,
Marco

[-- Attachment #1.1.2: write_cd_rules.diff --]
[-- Type: text/plain, Size: 1127 bytes --]

--- write_cd_rules.orig	2006-11-26 15:27:11.000000000 +0100
+++ write_cd_rules	2006-11-26 15:30:21.000000000 +0100
@@ -50,6 +50,38 @@
 	exit 1
 fi
 
+if [ "$1" ]; then
+	METHOD="$1"
+else
+	METHOD='by-path'
+fi
+
+case "$METHOD" in
+	by-path)
+	if [ -z "$ID_PATH" ]; then
+		echo "$DEVPATH not supported by path_id. by-id may work." >&2
+		exit 1
+	fi
+	RULE="ENV{ID_PATH}==\"$ID_PATH\""
+	;;
+
+	by-id)
+	if [ "$ID_SERIAL" ]; then
+		RULE="ENV{ID_SERIAL}==\"$ID_SERIAL\""
+	elif [ "$ID_MODEL" -a "$ID_REVISION" ]; then
+		RULE="ENV{ID_MODEL}==\"$ID_MODEL\", ENV{ID_REVISION}==\"$ID_REVISION\""
+	else
+		echo "$DEVPATH not supported by ata_id. by-path may work." >&2
+		exit 1
+	fi
+	;;
+
+	*)
+	echo "Invalid argument (must be either by-path or by-id)." >&2
+	exit 1
+	;;
+esac
+
 # Prevent concurrent processes from modifying the file at the same time.
 lock_rules_file
 
@@ -58,7 +90,7 @@
 
 link_num=$(find_next_available 'cdrom[0-9]*')
 
-match="ENV{ID_CDROM}==\"?*\", ENV{ID_PATH}==\"$ID_PATH\""
+match="ENV{ID_CDROM}==\"?*\", $RULE"
 
 comment="$ID_MODEL ($ID_PATH)"
 

[-- Attachment #1.2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

[-- Attachment #2: Type: text/plain, Size: 347 bytes --]

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

[-- Attachment #3: Type: text/plain, Size: 226 bytes --]

_______________________________________________
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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: write_cd_rules: identity-based persistence
  2006-11-24 18:58 write_cd_rules: identity-based persistence Bryan Kadzban
  2006-11-26 14:31 ` Marco d'Itri
@ 2006-11-26 19:13 ` Bryan Kadzban
  1 sibling, 0 replies; 3+ messages in thread
From: Bryan Kadzban @ 2006-11-26 19:13 UTC (permalink / raw)
  To: linux-hotplug


[-- Attachment #1.1: Type: text/plain, Size: 522 bytes --]

Marco d'Itri wrote:
> On Nov 24, Bryan Kadzban <bryan@kadzban.is-a-geek.net> wrote:
> 
>> This is a sort of follow-up of my path-based persistence patch for
>> net devices; it's the opposite type of addition for CD symlinks.
> 
> Looks good. I am attaching a slightly reformatted version, I think it
> should be applied.

That's probably a lot more clear than my version anyway: what you posted
looks like it does basically the same thing, just with some changes in
the order and sense of checks.

Thanks!


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 252 bytes --]

[-- Attachment #2: Type: text/plain, Size: 347 bytes --]

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV

[-- Attachment #3: Type: text/plain, Size: 226 bytes --]

_______________________________________________
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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-11-26 19:13 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-24 18:58 write_cd_rules: identity-based persistence Bryan Kadzban
2006-11-26 14:31 ` Marco d'Itri
2006-11-26 19:13 ` Bryan Kadzban

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).