1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- $ curl https://github.com/archlinux/mkinitcpio/commit/9ee1333a5f3302d7ddb004cf0909c94b4cff60ba.diff
- diff --git a/functions b/functions
- index 9539a60..f95fb92 100644
- --- a/functions
- +++ b/functions
- @@ -625,6 +625,46 @@ add_binary() {
- return 0
- }
-
- +add_udev_rule() {
- + # Add an udev rules file to the initcpio image. Dependencies on binaries
- + # will be discovered and added.
- + # $1: path to rules file (or name of rules file)
- +
- + local rules="$1" rule= key= value= binary=
- +
- + if [[ ${rules:0:1} != '/' ]]; then
- + rules=$(PATH=/usr/lib/udev/rules.d:/lib/udev/rules.d type -P "$rules")
- + fi
- + if [[ -z $rules ]]; then
- + # complain about not found rules
- + return 1
- + fi
- +
- + add_file "$rules" /usr/lib/udev/rules.d/"${rules##*/}"
- +
- + while IFS=, read -ra rule; do
- + # skip empty lines, comments
- + [[ -z $rule || $rule = @(+([[:space:]])|#*) ]] && continue
- +
- + for pair in "${rule[@]}"; do
- + IFS=' =' read -r key value <<< "$pair"
- + case $key in
- + RUN@({program}|+)|IMPORT{program}|ENV{REMOVE_CMD})
- + # strip quotes
- + binary=${value//[\"\']/}
- + # just take the first word as the binary name
- + binary=${binary%% *}
- + [[ ${binary:0:1} == '$' ]] && continue
- + if [[ ${binary:0:1} != '/' ]]; then
- + binary=$(PATH=/usr/lib/udev:/lib/udev type -P "$binary")
- + fi
- + add_binary "$binary"
- + ;;
- + esac
- + done
- + done <"$rules"
- +}
- +
- parse_config() {
- # parse key global variables set by the config file.
-
|