mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-07-16 17:25:08 +01:00
Remove unused /etc/lsb and manage-functions.
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@9534 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
parent
9f55ea084d
commit
52a4dd2f16
@ -12,6 +12,7 @@ ChangeLog
|
||||
* ifup - copy network configuration scritps to /run on startup
|
||||
* ifdown - use running configuration stored in /run to stop interfaces
|
||||
* Moved sysconfig files to /etc/default
|
||||
* Removed unused /etc/lsb /lib/lsb/manage-functions
|
||||
|
||||
20110424 - [dj]
|
||||
* Sync to LFS-Bootscripts-20110424 (move new run mounts and
|
||||
|
@ -21,7 +21,6 @@ create-dirs:
|
||||
install -d -m ${DIRMODE} ${EXTDIR}/network
|
||||
install -d -m ${DIRMODE} ${DESTDIR}/sbin
|
||||
install -d -m ${DIRMODE} ${DESTDIR}/lib/lsb
|
||||
install -d -m ${DIRMODE} ${EXTDIR}/lsb/state
|
||||
install -d -m ${DIRMODE} ${DESTDIR}/lib/network-services
|
||||
|
||||
install: create-dirs
|
||||
@ -46,8 +45,6 @@ install: create-dirs
|
||||
install -m ${MODE} etc/init.d/udev ${EXTDIR}/init.d/
|
||||
install -m ${MODE} etc/init.d/udev_retry ${EXTDIR}/init.d/
|
||||
install -m ${CONFMODE} lib/lsb/init-functions ${DESTDIR}/lib/lsb/
|
||||
install -m ${CONFMODE} lib/lsb/manage-functions ${DESTDIR}/lib/lsb/
|
||||
install -m ${CONFMODE} etc/lsb-config ${EXTDIR}/lsb/
|
||||
if [ ! -f ${EXTDIR}/default/createfiles ]; then install -m ${CONFMODE} etc/default/createfiles ${EXTDIR}/default/; fi
|
||||
if [ ! -f ${EXTDIR}/default/modules ]; then install -m ${CONFMODE} etc/default/modules ${EXTDIR}/default/; fi
|
||||
if [ ! -f ${EXTDIR}/default/rc ]; then install -m ${CONFMODE} etc/default/rc ${EXTDIR}/default/; fi
|
||||
@ -90,8 +87,6 @@ minimal: create-dirs
|
||||
install -m ${MODE} etc/init.d/swap ${EXTDIR}/init.d/
|
||||
install -m ${MODE} etc/init.d/udev ${EXTDIR}/init.d/
|
||||
install -m ${CONFMODE} lib/lsb/init-functions ${DESTDIR}/lib/lsb/
|
||||
install -m ${CONFMODE} lib/lsb/manage-functions ${DESTDIR}/lib/lsb/
|
||||
install -m ${CONFMODE} etc/lsb-config ${EXTDIR}/lsb/
|
||||
if [ ! -f ${EXTDIR}/default/rc ]; then install -m ${CONFMODE} default/rc ${EXTDIR}/default/; fi
|
||||
if [ -f ${EXTDIR}/inittab ]; then install -m ${CONFMODE} ${EXTDIR}/inittab ${EXTDIR}/inittab.bak; fi
|
||||
install -m ${CONFMODE} etc/inittab ${EXTDIR}/
|
||||
|
@ -1,8 +0,0 @@
|
||||
# Begin /etc/lsb/lsb-config
|
||||
|
||||
rcbase="/etc/init.d"
|
||||
statedir="/etc/lsb/state"
|
||||
distro="LFS"
|
||||
|
||||
# End /etc/lsb/lsb-config
|
||||
|
@ -1,306 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Begin /lib/lsb/manage-functions
|
||||
|
||||
# /lib/lsb/manage-functions contains the functions used by
|
||||
# /lib/lsb/install_initd and /lib/lsb/remove_initd as well as additional helper
|
||||
# functions for use in programs that would provide functionality similar to
|
||||
# the RedHat chkconfig utility, for instance.
|
||||
|
||||
# source the confif file
|
||||
. /etc/lsb/lsb-config
|
||||
|
||||
# Define all arrays at script start to avoid scope issues
|
||||
# scriptlist is a list of valid scripts used as an index
|
||||
declare -a scriptlist
|
||||
# fullheaders is a complete set of valid LSB headers, stored in memory for
|
||||
# each indexed script, to avoid multiple disk reads
|
||||
declare -a fullheaders
|
||||
|
||||
###############################################################################
|
||||
# get_headers() - Obtains a valid list of scripts contained in ${rcbase} and #
|
||||
# inserts the name of the script into the scriptlist[] array #
|
||||
# for use by all other functions. Additionally, it inserts #
|
||||
# the entire LSB header information from each script into a #
|
||||
# second array, fullheaders[], so that diskreads need only be #
|
||||
# done once #
|
||||
# Returns no value, but populates the variable ${scriptcount} #
|
||||
# and the arrays ${scriptlist} and ${fullheaders} for use #
|
||||
# with other functions in this script. This function is #
|
||||
# called unconditionally at the end of this scrip and is #
|
||||
# provided as a function only for the case that it needs to #
|
||||
# be called again after other operations. #
|
||||
###############################################################################
|
||||
get_headers()
|
||||
{
|
||||
echo -n "Retrieving script information from disk..."
|
||||
count=1
|
||||
for file in $(find -P /etc/init.d -xdev -perm -u=x | sed -n 2~1p \
|
||||
| sed "s@/etc/init.d/rc@@")
|
||||
do
|
||||
# determine if script is an LSB compliant script
|
||||
grep "### BEGIN INIT INFO" $file > /dev/null
|
||||
if test $? -gt "0"
|
||||
then
|
||||
# this is not a valid script and is ignored
|
||||
# skip the rest of the loop
|
||||
continue
|
||||
fi
|
||||
# determine basename using only bash (is basename a builtin?)
|
||||
filename=$(echo "${file}" | sed "s@${rcbase}/@@")
|
||||
# assign it to an array possition
|
||||
scriptlist["${count}"]="${filename}"
|
||||
# find the begining of the init info for the script
|
||||
begin=$(grep -n "### BEGIN INIT INFO" "${file}" | cut -d: -f1)
|
||||
# find the end of the init info for the script
|
||||
end=$(grep -n "### END INIT INFO" "${file}" | cut -d: -f1)
|
||||
# we'll use the difference between the values in the tail command
|
||||
diff=$(( ${end} - ${begin} ))
|
||||
# assign the entire LSB header information as a single string to the
|
||||
# fullheaders[] array
|
||||
fullheaders["${count}"]=$(head -n "${end}" "${file}" \
|
||||
| tail -n "${diff}")
|
||||
count=$(( ${count} + 1 ))
|
||||
unset begin
|
||||
unset end
|
||||
unset diff
|
||||
unset filename
|
||||
done
|
||||
# a number or array elements would be a nice regular variable assignment
|
||||
scriptcount="${#scriptlist[@]}"
|
||||
unset count
|
||||
echo -e "Completed!"
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# print_headers() - Presents a formatted list of all LSB compliant script #
|
||||
# headers to stdout preceeded by script name for use in #
|
||||
# other scripts #
|
||||
###############################################################################
|
||||
print_headers()
|
||||
{
|
||||
get_headers
|
||||
count=1
|
||||
while test "${count}" -lt "${scriptcount}"
|
||||
do
|
||||
echo "${scriptlist[$count]}"
|
||||
echo "============================================================="
|
||||
echo "${fullheaders[$count]}"
|
||||
echo ""
|
||||
echo ""
|
||||
count="$(( ${count} + 1 ))"
|
||||
done
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# get_index() - Determines the array index of the specified script #
|
||||
###############################################################################
|
||||
|
||||
get_index()
|
||||
{
|
||||
filename=$(echo "${1}" | sed "s@${rcbase}/@@")
|
||||
count=1
|
||||
while test "${count}" -lt "${scriptcount}"
|
||||
do
|
||||
echo "${scriptlist[${count}]}" | grep "${filename}" > /dev/null
|
||||
if test "${?}" -ne "0"
|
||||
then
|
||||
count=$(( ${count} + 1 ))
|
||||
continue
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test "${filename}" == "${scriptlist[${count}]}"
|
||||
then
|
||||
echo "${count}"
|
||||
else
|
||||
echo "${1} is not a valid LSB init script."
|
||||
exit 1
|
||||
fi
|
||||
unset filename
|
||||
unset count
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# get_lsb_value() - Obtains the LSB Value of $1 for index of script ($2). #
|
||||
###############################################################################
|
||||
get_lsb_value()
|
||||
{
|
||||
# Probably need some error checking in here
|
||||
echo "${fullheaders[${2}]}" | \
|
||||
grep "^# ${1}" | \
|
||||
sed -e "s@# ${1}:@@" \
|
||||
-e "s/^[ \t]*//"
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# convert_lsb_required() - Converts LSB defined facilities (facility names #
|
||||
# begining with a '$' character) into script names #
|
||||
# for required start/stop #
|
||||
###############################################################################
|
||||
convert_lsb_required()
|
||||
{
|
||||
local count=0
|
||||
local provides=""
|
||||
local reqfacility=""
|
||||
local reqprovideslist=""
|
||||
|
||||
for reqfacility in $@
|
||||
do
|
||||
# find the requires and it's index and then find the script name
|
||||
# from the index. Since this is required, exit if it is not found
|
||||
## If reqfacility is already in script name format, nothing needs to
|
||||
## be done, just echo it back out. I can't think of an easy way to
|
||||
## do this right now, the scriptname will be the same as the provides
|
||||
## anyway, so just let it fly for now...it'll be correct, it just
|
||||
## takes an extra couple of commands to get the same result.
|
||||
## Besides, this will do some extra sanity checking in case somebody
|
||||
## writes a script that isn't named the same as provides, though this
|
||||
## isn't LSB compliant. Additionally, these same comments apply to
|
||||
## the convert_lsb_should() fucntion below.
|
||||
count=0
|
||||
while test ${count} -lt ${scriptcount}
|
||||
do
|
||||
count=$(( $count + 1 ))
|
||||
provides="$( get_lsb_value Provides ${count} )"
|
||||
if test "${provides}" = "${reqfacility}"
|
||||
then
|
||||
reqprovideslist="${reqprovideslist} ${scriptlist[$count]}"
|
||||
break
|
||||
fi
|
||||
if test ${count} -eq ${scriptcount}; then
|
||||
# If we've never broken out of the while loop, then this is an
|
||||
# unrecoverable error since it is a required item. Exit now!
|
||||
echo "Error: unable to locate required facility ${reqfacility}!"
|
||||
exit 5
|
||||
fi
|
||||
done
|
||||
done
|
||||
echo "${reqprovideslist}" | sed -e "s/^[ \t]*//" -e "s/^[ \t]*//"
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# convert_lsb_should() - Converts LSB defined facilities (facility names #
|
||||
# begining with a '$' character) into script names for #
|
||||
# should start/stop #
|
||||
###############################################################################
|
||||
|
||||
convert_lsb_should()
|
||||
{
|
||||
local count=0
|
||||
local provides=""
|
||||
local optfacility=""
|
||||
local optprovideslist=""
|
||||
|
||||
for optfacility in $@
|
||||
do
|
||||
# find the should and it's index and then find the script name
|
||||
# from the index. Since this is not an error, simply warn if it
|
||||
# is not found.
|
||||
count=0
|
||||
while test ${count} -lt ${scriptcount}
|
||||
do
|
||||
count=$(( $count + 1 ))
|
||||
provides="$( get_lsb_value Provides ${count} )"
|
||||
if test "${provides}" = "${optfacility}"
|
||||
then
|
||||
optprovideslist="${optprovideslist} ${scriptlist[$count]}"
|
||||
break
|
||||
fi
|
||||
# No need to error or warn on should items, and it's messy if so!
|
||||
done
|
||||
done
|
||||
echo "${optprovideslist}" | sed -e "s/^[ \t]*//" -e "s/[ \t]*$//"
|
||||
}
|
||||
|
||||
get_headers
|
||||
|
||||
###############################################################################
|
||||
# get_lsb_required_value() - Additional function to simplify repetitive tasks #
|
||||
# Obtains the LSB Value of $1 for index of script #
|
||||
# ($2) and immediately converts LSB defined #
|
||||
# facilities (beginning with a '$' character) to a #
|
||||
# script name. If the script is not found, then #
|
||||
# the function exits with an error as per #
|
||||
# convert_lsb_required. #
|
||||
###############################################################################
|
||||
get_lsb_required_value()
|
||||
{
|
||||
local reqval
|
||||
# Probably need some error checking in here
|
||||
reqval=`echo "${fullheaders[${2}]}" | \
|
||||
grep "^# ${1}" | \
|
||||
sed -e "s@# ${1}:@@" \
|
||||
-e "s/^[ \t]*//"`
|
||||
|
||||
# If $reqval contains a '$' charcter, then convert it to a script name
|
||||
echo "${reqval}" | grep "\\$" 2>&1 > /dev/null
|
||||
if test "${?}" -eq "0"
|
||||
then
|
||||
reqval=`convert_lsb_required "${reqval}"`
|
||||
fi
|
||||
echo "${reqval}"
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# get_lsb_should_value() - Additional function to simplify repetitive tasks #
|
||||
# Obtains the LSB Value of $1 for index of script #
|
||||
# ($2) and immediately converts LSB defined #
|
||||
# facilities (beginning with a '$' character) to a #
|
||||
# script name. If the script is not found, the #
|
||||
# value is removed from the list as it is optional. #
|
||||
###############################################################################
|
||||
get_lsb_should_value()
|
||||
{
|
||||
local optval
|
||||
local listitem
|
||||
local optitem
|
||||
# Probably need some error checking in here
|
||||
optval=`echo "${fullheaders[${2}]}" | \
|
||||
grep "^# ${1}" | \
|
||||
sed -e "s@# ${1}:@@" \
|
||||
-e "s/^[ \t]*//"`
|
||||
|
||||
# If $optval contains a '$' charcter, then convert it to a script name
|
||||
echo "${optval}" | grep "\\$" 2>&1 > /dev/null
|
||||
if test "${?}" -eq "0"
|
||||
then
|
||||
optval=`convert_lsb_should "${optval}"`
|
||||
# if we still have a "$" character, then it's not found and it should
|
||||
# be removed from the list (and it's trailing space if one exists)
|
||||
# since it is optional
|
||||
echo "${optval}" | grep "\\$" 2>&1 > /dev/null
|
||||
if test "${?}" -eq "0"
|
||||
then
|
||||
# Remove the value
|
||||
for listitem in ${optval}
|
||||
do
|
||||
echo "${listitem}" | grep "\\$"
|
||||
if test "${?}" -eq "0"
|
||||
then
|
||||
optval=`echo "${optval}" | sed -e 's@${listitem} @@' \
|
||||
-e 's@${listitem}@@' | \
|
||||
sed -e "s@# ${1}:@@" \
|
||||
-e "s/^[ \t]*//"`
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
# If a should start value does not have a script associted with it, then
|
||||
# remove it (or it and trailing space) from the list
|
||||
for optitem in ${otpval}
|
||||
do
|
||||
grep "${optitem}" "${statedir}/enabled-scripts" 2>&1 > /dev/null
|
||||
if test "${?}" -ne "0"
|
||||
then
|
||||
optval=`echo "${optval}" | sed -e 's@${otpitem} @@' \
|
||||
-e 's@${optitem}@@' | \
|
||||
sed -e "s@# ${1}:@@" \
|
||||
-e "s/^[ \t]*//"`
|
||||
fi
|
||||
done
|
||||
|
||||
echo "${optval}"
|
||||
}
|
||||
|
||||
# End /lib/lsb/manage-functions
|
Loading…
Reference in New Issue
Block a user