echo "${FUNCNAME}(), invalid level argument : ${*}"
return 1
fi
-
+
# Making sure bootscript has correct permissions
chmod -v 740 ${LFS}/etc/rc.d/init.d/${SCRIPTNAME}
echo "${FUNCNAME}(), wrong number of arguments: ${*}"
return 1
fi
-
+
# Checking if file exists
if [ ! -f ${FILE} ]; then
echo "${FUNCNAME}(), file not found: ${FILE}"
echo "${FUNCNAME}(), wrong number of arguments: ${*}"
return 1
fi
-
+
# Checking if file exists
if [ ! -f ${FILE} ]; then
echo "${FUNCNAME}(), file not found: ${FILE}"
# Variable value is NOT enclosed by double-quotes
sed -i "s!\(^export ${VARIABLE}=.*\)!\1${SEP}${VALUE}!" ${FILE}
fi
-
+
return $?
}
echo "${FUNCNAME}(), wrong number of arguments: ${*}"
return 1
fi
-
+
# Checking if file exists
if [ ! -f ${FILE} ]; then
echo "${FUNCNAME}(), file not found: ${FILE}"
echo "${FUNCNAME}(), string already defined: ${STRING}"
return 0
fi
-
+
echo "${STRING}" >> ${FILE}
}
echo "${FUNCNAME}(), wrong number of arguments: ${*}"
return 1
fi
-
+
# Checking if file exists
if [ ! -f ${FILE} ]; then
echo "${FUNCNAME}(), file not found: ${FILE}"
{
arguments=${*}
- set +e
-
+ # The last argument is the group name
while [ $# -ne 0 ]; do
- last_argument=${*}
+ groupname=${*}
shift
done
-
- groupadd ${arguments}
- error=$?
-
- set -e
- if [ ${error} -eq 0 -o ${error} -eq 9 ]; then
- # 9 means the group already exists
- return ${EXIT_SUCCESS}
- else
- exit ${EXIT_FAILURE}
+ if ! cat /etc/group | egrep "^${groupname}:" 1> /dev/null 2>&1; then
+ groupadd ${arguments}
fi
}
{
arguments="${*}"
- set +e
-
- # The last argument is the username
+ # The last argument is the user name
while [ $# -ne 0 ]; do
- last_argument=${*}
+ username=${*}
shift
done
- useradd ${arguments}
- error=$?
-
- set -e
-
- if [ ${error} -eq 0 -o ${error} -eq 9 ]; then
- # 9 means the user already exists
- return ${EXIT_SUCCESS}
- else
- exit ${EXIT_FAILURE}
+ if ! cat /etc/passwd | egrep "^${username}:" 1> /dev/null 2>&1; then
+ useradd ${arguments}
fi
}
echo "Usage: ${FUNCNAME} PACKAGE-NAME"
exit ${EXIT_FAILURE}
fi
-
+
if [ $# -eq 2 ]; then
TARGET_DIR=${2}
else
TARGET_DIR=${PACKAGE}
fi
-
+
# Checking if we can find at least one patch.
if ls ${LFS_PKG_DIR}/${1}-*.patch 1> /dev/null 2>&1; then
cd ${LFS_PKG_DIR}
# Decompression of a package
# First argument: package name
-# Second argument: directory where decompressing (optional)
+# Second argument: directory where decompressing (optional, defaults to LFS_TMP)
decompress_package()
{
# Checking for correct number of arguments
# -l Unique identification label in 'install.log'
# (default is package name and version)
# -m Installation mode:
-# ac Standard autoconf package, build in separate dir
-# acnb Standard autoconf package, building in source dir
-# nb No autoconf (configure)
+# ac Standard autoconf package, build in separate dir (default)
+# acnb Standard autoconf package, build in source dir
+# noac No autoconf (configure)
# gnome
# xorg
# pm
-# -s Name of script to execute or name of definition file (default is
-# to source ipkg.def)
+# -s Name of script to source (default is from name of package)
ipkg()
{
START_TIME=$(echo `date +%s`)
+ unset ALT_SCRIPT_NAME
export IPKG_MODE="ac"
export HVLABEL="" # Global variable
- local SCRIPT=${DEFAULT_IPKG_SCRIPT}
- while getopts "hl:m:" flag ;do
+ while getopts "hl:m:s:" flag ;do
case ${flag} in
l)
# Alternate label
;;
s)
# Alternate script name
- SCRIPT=${OPTARG}
-
- # Checking if script is valid and executable
- if [ ! -x ${SCRIPT} ]; then
- echo "${FUNCNAME}(): cannot execute script: ${SCRIPT}"
- exit ${EXIT_FAILURE}
- fi
+ ALT_SCRIPT_NAME=${OPTARG}
;;
?)
echo "${FUNCNAME}(): Invalid option: ${OPTARG}."
# Checking if package was previously successfully installed
if grep "^${HVLABEL} successfully installed" ${LFS_LOG_FILE} \
- 1> /dev/null 2>&1; then
+ 1> /dev/null 2>&1; then
return $EXIT_SUCCESS
fi
-
+
# Displaying label
MSGSTRING="Installing ${HVLABEL}"
display_checkbox_msg ${MSGSTRING}
# All output from commands in this block sent to file $PACKAGE_LOG.
exec > ${PACKAGE_LOG} 2>&1
- if [ "x${SCRIPT}" = "x${DEFAULT_IPKG_SCRIPT}" ]; then
- # Executing standard ac script.
- source ${SCRDIR}/../functions-ac
- source ${SCRDIR}/${DEFAULT_IPKG_SCRIPT}
- ipkg_script
- else
- # Executing custom script.
- ${SCRIPT} ${PACKAGE} ${CONFIGURE_OPTS}
- fi
+ # Sourcing standard ac script.
+ source ${SCRDIR}/../functions-ipkg
+ source ${SCRDIR}/${DEFAULT_IPKG_SCRIPT}
+ ipkg_script ${ALT_SCRIPT_NAME}
# Make sure we are at a known location
cd ${SCRDIR}
{
trap - INT TERM EXIT ERR
- # Restore global trap
- #####hvtrap_setup
+ # We do not restore global trap
}
rcmd_trap_handler()
{
- exec 1>&6 6>&- # Restore stdout and close file descriptor #6.
+ exec 1>&6 6>&- # Restore stdout to fd #6, where it had been saved,
+ # and close file descriptor #6.
print_status failure
- ###rcmd_trap_end
- ###exit 1
+ rcmd_trap_end
+ if [ -n "${RCMD_NO_EXIT}" ]; then
+ return ${EXIT_FAILURE}
+ else
+ exit ${EXIT_FAILURE}
+ fi
}
# Run command, no log
echo ${CMD_WITH_ARGS} 1>> ${LFS_LOG_FILE}
- if [ -n "${RCMD_NO_EXIT}" ]; then
- set +e
- fi
-
# Executing command
${CMD_WITH_ARGS} 1>> ${LFS_LOG_FILE} 2>&1
- if [ -n "${RCMD_NO_EXIT}" ]; then
- set -e
- fi
-
if [ $? -ne 0 ]; then
- print_status failure
if [ -n "${RCMD_NO_EXIT}" ]; then
return ${EXIT_FAILURE}
else