refactor: 抽取函数, 统一放入common.sh
This commit is contained in:
+1
-53
@@ -1,10 +1,7 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
install_dependencies() {
|
||||
sudo apt install -y build-essential libncurses-dev zlib1g-dev gawk git \
|
||||
gettext libssl-dev xsltproc rsync wget unzip python3 qemu-utils mkisofs zstd
|
||||
}
|
||||
source common.sh
|
||||
|
||||
download_imagebuilder() {
|
||||
local version="$1"
|
||||
@@ -32,24 +29,7 @@ download_imagebuilder() {
|
||||
echo "$(pwd)/$folder"
|
||||
}
|
||||
|
||||
# =============================================================
|
||||
# 交互输入函数
|
||||
# 参数1: 提示信息
|
||||
# 参数2: 默认值
|
||||
# 返回: 用户输入值,直接回车返回默认值
|
||||
# =============================================================
|
||||
ask_input() {
|
||||
local prompt="$1"
|
||||
local default="$2"
|
||||
|
||||
read -p "${prompt} [ 默认: ${default} ]: " value
|
||||
|
||||
if [ -z "$value" ]; then
|
||||
echo "$default"
|
||||
else
|
||||
echo "$value"
|
||||
fi
|
||||
}
|
||||
|
||||
build() {
|
||||
# =============================================================
|
||||
@@ -174,40 +154,8 @@ build() {
|
||||
echo -e "固件输出: ${PROJECT_OUTPUT_DIR}"
|
||||
}
|
||||
|
||||
# 获取lan口ip
|
||||
input_lan_ip() {
|
||||
local default_ip="$1"
|
||||
|
||||
while true; do
|
||||
local ip
|
||||
|
||||
ip=$(ask_input "请输入lan口ip" "$default_ip")
|
||||
|
||||
if valid_ipv4 "$ip"; then
|
||||
echo "$ip"
|
||||
return 0
|
||||
else
|
||||
echo "[错误] IP地址格式不正确,请重新输入" >&2
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
valid_ipv4() {
|
||||
local ip="$1"
|
||||
|
||||
# 第一层:检查格式,必须是4段数字
|
||||
echo "$ip" | grep -Eq '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$' || return 1
|
||||
|
||||
# 第二层:检查每段范围
|
||||
echo "$ip" | awk -F. '
|
||||
$1>=0 && $1<=255 &&
|
||||
$2>=0 && $2<=255 &&
|
||||
$3>=0 && $3<=255 &&
|
||||
$4>=0 && $4<=255
|
||||
' | grep -q . || return 1
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
project_dir="$(cd "$(dirname "$0")" && pwd)"
|
||||
cd "$project_dir"
|
||||
|
||||
Reference in New Issue
Block a user