mirror of
https://github.com/systemd/systemd.git
synced 2024-12-23 21:35:11 +03:00
write_cd_rules: identity-based persistence
Bryan Kadzban wrote: > Marco d'Itri wrote: > > Bryan Kadzban 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.
This commit is contained in:
parent
26133d54e0
commit
64e6d9dd70
@ -50,6 +50,38 @@ if [ -z "$ID_CDROM" ]; then
|
||||
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 @@ choose_rules_file
|
||||
|
||||
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)"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user