fix:初始化脚本

This commit is contained in:
waner
2026-05-25 18:19:31 +08:00
parent c4c178c8b1
commit 6e5c0a0fcf
6 changed files with 116 additions and 84 deletions
@@ -35,6 +35,83 @@ if [ ! -f "${script}" ]; then
exit 66
fi
read_cpconfig_value() {
local key="$1"
local file="${STANDARD_HOME_DIR}/cpconfig.cfg"
if [ ! -f "${file}" ]; then
return 0
fi
awk -F= -v key="${key}" '
$1 == key {
value = substr($0, index($0, "=") + 1)
gsub(/^[[:space:]]+|[[:space:]]+$/, "", value)
print value
exit
}
' "${file}"
}
local_ipv4s() {
if command -v ip >/dev/null 2>&1; then
ip -o -4 addr show | awk '{ split($4, parts, "/"); print parts[1] }'
fi
if command -v hostname >/dev/null 2>&1; then
hostname -I 2>/dev/null | tr ' ' '\n' | awk '/^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/'
fi
}
has_local_ip() {
local expected="$1"
if [ -z "${expected}" ]; then
return 1
fi
local_ipv4s | awk -v expected="${expected}" '$0 == expected { found = 1 } END { exit found ? 0 : 1 }'
}
resolve_standard_node_dir() {
local node01
local node02
node01="$(read_cpconfig_value "sptp_01app_ip")"
node02="$(read_cpconfig_value "sptp_02app_ip")"
if has_local_ip "${node02}" && ! has_local_ip "${node01}"; then
echo "02"
return 0
fi
echo "01"
}
prepare_setsptp_templates() {
local node_dir
local cmsp_src
local cmtp_src
local cmsp_dst
local cmtp_dst
node_dir="$(resolve_standard_node_dir)"
cmsp_src="${STANDARD_HOME_DIR}/cpackage/cmsp/${node_dir}"
cmtp_src="${STANDARD_HOME_DIR}/cpackage/cmtp/${node_dir}"
cmsp_dst="${STANDARD_HOME_DIR}/cmsp"
cmtp_dst="${STANDARD_HOME_DIR}/cmtp"
if [ ! -d "${cmsp_src}" ]; then
echo "standard CMSP template directory not found: ${cmsp_src}" >&2
exit 67
fi
if [ ! -d "${cmtp_src}" ]; then
echo "standard CMTP template directory not found: ${cmtp_src}" >&2
exit 67
fi
mkdir -p "${cmsp_dst}" "${cmtp_dst}"
cp -a "${cmsp_src}/." "${cmsp_dst}/"
cp -a "${cmtp_src}/." "${cmtp_dst}/"
echo "prepared standard receiver templates from node ${node_dir}"
}
if [ "${step}" = "setsptp" ]; then
prepare_setsptp_templates
fi
run_payload='
set -euo pipefail
standard_home="$1"