| Index: dhcpcd-run-hooks.in
|
| diff --git a/dhcpcd-run-hooks.in b/dhcpcd-run-hooks.in
|
| deleted file mode 100644
|
| index 5a50d0e8aa20df25b36dde790632a7f52a95d3da..0000000000000000000000000000000000000000
|
| --- a/dhcpcd-run-hooks.in
|
| +++ /dev/null
|
| @@ -1,161 +0,0 @@
|
| -#!/bin/sh
|
| -# dhcpcd client configuration script
|
| -
|
| -# Handy variables and functions for our hooks to use
|
| -from=from
|
| -signature_base="# Generated by dhcpcd"
|
| -signature="$signature_base $from $interface"
|
| -signature_base_end="# End of dhcpcd"
|
| -signature_end="$signature_base_end $from $interface"
|
| -state_dir=/var/run/dhcpcd
|
| -
|
| -# Ensure that all arguments are unique
|
| -uniqify()
|
| -{
|
| - local result= i=
|
| - for i; do
|
| - case " $result " in
|
| - *" $i "*);;
|
| - *) result="$result $i";;
|
| - esac
|
| - done
|
| - echo "${result# *}"
|
| -}
|
| -
|
| -# List interface config files in a dir
|
| -# If dhcpcd is running as a single instance then it will have a list of
|
| -# interfaces in the preferred order.
|
| -# Otherwise we just use what we have.
|
| -list_interfaces()
|
| -{
|
| - local i= x= ifaces=
|
| - for i in $interface_order; do
|
| - [ -e "$1/$i" ] && ifaces="$ifaces${ifaces:+ }$i"
|
| - done
|
| - for x in "$1"/*; do
|
| - [ -e "$x" ] || continue
|
| - for i in $interface_order; do
|
| - if [ $i = "${x##*/}" ]; then
|
| - unset x
|
| - break
|
| - fi
|
| - done
|
| - [ -n "$x" ] && ifaces="$ifaces${ifaces:+ }${x##*/}"
|
| - done
|
| - echo "$ifaces"
|
| -}
|
| -
|
| -# We normally use sed to extract values using a key from a list of files
|
| -# but sed may not always be available at the time.
|
| -key_get_value()
|
| -{
|
| - local key="$1" value= x= line=
|
| -
|
| - shift
|
| - if type sed >/dev/null 2>&1; then
|
| - sed -n "s/^$key//p" $@
|
| - else
|
| - for x; do
|
| - while read line; do
|
| - case "$line" in
|
| - "$key"*) echo "${line##$key}";;
|
| - esac
|
| - done < "$x"
|
| - done
|
| - fi
|
| -}
|
| -
|
| -# We normally use sed to remove markers from a configuration file
|
| -# but sed may not always be available at the time.
|
| -remove_markers()
|
| -{
|
| - local m1="$1" m2="$2" x= line= in_marker=0
|
| -
|
| - shift; shift
|
| - if type sed >/dev/null 2>&1; then
|
| - sed "/^$m1/,/^$m2/d" $@
|
| - else
|
| - for x; do
|
| - while read line; do
|
| - case "$line" in
|
| - "$m1"*) in_marker=1;;
|
| - "$m2"*) in_marker=0;;
|
| - *) [ $in_marker = 0 ] && echo "$line";;
|
| - esac
|
| - done < "$x"
|
| - done
|
| - fi
|
| -}
|
| -
|
| -# Compare two files
|
| -# If different, replace first with second otherwise remove second
|
| -change_file()
|
| -{
|
| - if type cmp >/dev/null 2>&1; then
|
| - cmp -s "$1" "$2"
|
| - elif type diff >/dev/null 2>&1; then
|
| - diff -q "$1" "$2" >/dev/null
|
| - else
|
| - # Hopefully we're only working on small text files ...
|
| - [ "$(cat "$1")" = "$(cat "$2")" ]
|
| - fi
|
| - if [ $? -eq 0 ]; then
|
| - rm -f "$2"
|
| - return 1
|
| - fi
|
| - cat "$2" > "$1"
|
| - rm -f "$2"
|
| - return 0
|
| -}
|
| -
|
| -# Save a config file
|
| -save_conf()
|
| -{
|
| - if [ -f "$1" ]; then
|
| - rm -f "$1-pre.$interface"
|
| - cat "$1" > "$1-pre.$interface"
|
| - fi
|
| -}
|
| -
|
| -# Restore a config file
|
| -restore_conf()
|
| -{
|
| - [ -f "$1-pre.$interface" ] || return 1
|
| - cat "$1-pre.$interface" > "$1"
|
| - rm -f "$1-pre.$interface"
|
| -}
|
| -
|
| -# Write a syslog entry
|
| -syslog()
|
| -{
|
| - local lvl="$1"
|
| -
|
| - [ -n "$lvl" ] && shift
|
| - if [ -n "$@" ]; then
|
| - if type logger >/dev/null 2>&1; then
|
| - logger -t dhcpcd -p daemon."$lvl" -s "$@"
|
| - fi
|
| - fi
|
| -}
|
| -
|
| -
|
| -# We source each script into this one so that scripts run earlier can
|
| -# remove variables from the environment so later scripts don't see them.
|
| -# Thus, the user can create their dhcpcd.enter/exit-hook script to configure
|
| -# /etc/resolv.conf how they want and stop the system scripts ever updating it.
|
| -for hook in \
|
| - @SYSCONFDIR@/dhcpcd.enter-hook \
|
| - @HOOKDIR@/* \
|
| - @SYSCONFDIR@/dhcpcd.exit-hook
|
| -do
|
| - for skip in $skip_hooks; do
|
| - case "$hook" in
|
| - */"$skip") continue 2;;
|
| - */[0-9][0-9]"-$skip") continue 2;;
|
| - */[0-9][0-9]"-$skip.sh") continue 2;;
|
| - esac
|
| - done
|
| - if [ -f "$hook" ]; then
|
| - . "$hook"
|
| - fi
|
| -done
|
|
|