Files
linux-live/configure

139 lines
2.9 KiB
Bash
Executable File

#!/bin/bash
function CheckTool
{
[ -n "$1" ] ||
{
echo -e "CheckTool 参数错误!!";
return 255;
};
ToolPath=`which $1`;
[ -e "$ToolPath" ] ||
{
echo -e "$1 不存在,请先安装此工具!!!";
return 255;
};
return 0;
}
export TOOL_UNSUPPORTED=0
CheckTool uname
[ $? -eq 0 ] || export TOOL_UNSUPPORTED=1
CheckTool find
[ $? -eq 0 ] || export TOOL_UNSUPPORTED=1
CheckTool dirname
[ $? -eq 0 ] || export TOOL_UNSUPPORTED=1
CheckTool basename
[ $? -eq 0 ] || export TOOL_UNSUPPORTED=1
CheckTool readlink
[ $? -eq 0 ] || export TOOL_UNSUPPORTED=1
CheckTool realpath
[ $? -eq 0 ] || export TOOL_UNSUPPORTED=1
CheckTool ln
[ $? -eq 0 ] || export TOOL_UNSUPPORTED=1
CheckTool sed
[ $? -eq 0 ] || export TOOL_UNSUPPORTED=1
CheckTool grep
[ $? -eq 0 ] || export TOOL_UNSUPPORTED=1
CheckTool id
[ $? -eq 0 ] || export TOOL_UNSUPPORTED=1
CheckTool mkdir
[ $? -eq 0 ] || export TOOL_UNSUPPORTED=1
CheckTool xargs
[ $? -eq 0 ] || export TOOL_UNSUPPORTED=1
show_config()
{
echo -e \\tLIVEKITNAME:${LIVEKITNAME}
echo -e \\tVMLINUZ:${VMLINUZ}
echo -e \\tKERNEL:${KERNEL}
echo -e \\tMKMOD:${MKMOD}
echo -e \\tNETWORK:${NETWORK}
echo -e \\tLIVEKITDATA:${LIVEKITDATA}
echo -e \\tBEXT:${BEXT}
echo -e \\tLMK:${LMK}
}
load_and_show_config()
{
. ${script_dir}/config
show_config
}
if [ ${TOOL_UNSUPPORTED} -ne 1 ]
then
# shellcheck disable=SC2128 # ignore array expansion warning
if [ -n "${BASH_SOURCE-}" ]
then
self_path="${BASH_SOURCE}"
elif [ -n "${ZSH_VERSION-}" ]
then
self_path="${(%):-%x}"
else
return 1
fi
# shellcheck disable=SC2169,SC2169,SC2039 # unreachable with 'dash'
if [[ "$OSTYPE" == "darwin"* ]]; then
# convert possibly relative path to absolute
script_dir="$(realpath_int "${self_path}")"
# resolve any ../ references to make the path shorter
script_dir="$(cd "${script_dir}" || exit 1; pwd)"
else
# convert to full path and get the directory name of that
script_name="$(readlink -f "${self_path}")"
script_dir="$(dirname "${script_name}")"
fi
echo 配置目录:${script_dir}
echo 当前配置:
load_and_show_config
if [ ! -e ${VMLINUZ} ]
then
echo -e VMLINUZ不存在,尝试使用/boot/vmlinuz!
VMLINUZ=/boot/vmlinuz
if [ ! -e ${VMLINUZ} ]
then
exit -1
fi
fi
KERNEL=`realpath ${VMLINUZ} | xargs basename | sed 's/vmlinuz-//g'`
NEW_LMK="lib/modules/${KERNEL}"
if [ -d "/${NEW_LMK}" ]
then
echo 使用新VMLINUZ的模块路径${NEW_LMK}!
LMK=${NEW_LMK}
fi
show_config
pushd "${script_dir}" 1> /dev/null 2> /dev/null
cp config config.tmp
sed -i "s/VMLINUZ=.*/VMLINUZ=\"${VMLINUZ//\//\\/}\"/g" config.tmp
sed -i "s/KERNEL=.*/KERNEL=\"${KERNEL}\"/g" config.tmp
popd 1> /dev/null 2> /dev/null
echo 新配置已在config.tmp中
if [ "${LIVEKITNAME}" != "linux" ]
then
echo 需要手动执行 sudo ./tools/isolinux.bin.update 更新启动文件。
fi
else
echo 工具不支持!
exit -1
fi