Добавлен флаг force для тихой сборки

This commit is contained in:
Alexander Zhirov 2025-12-12 16:23:34 +03:00
parent 9bc27e0fb8
commit 4084e183c7
Signed by: alexander
GPG key ID: C8D8BE544A27C511

27
ipxe.sh
View file

@ -205,7 +205,7 @@ set -eu
usage() { usage() {
cat <<'EOF' cat <<'EOF'
Использование: build-ipxe.sh [--efi] [--legacy] [--iso] [--default] [--patch] [-h|--help] Использование: build-ipxe.sh [--efi] [--legacy] [--iso] [--default] [--patch] [--force] [-h|--help]
Без флагов собираются все цели: Без флагов собираются все цели:
--legacy -> make bin-i386-pcbios/undionly.kpxe EMBED=start.ipxe --legacy -> make bin-i386-pcbios/undionly.kpxe EMBED=start.ipxe
@ -215,6 +215,7 @@ usage() {
Дополнительно: Дополнительно:
--default -> включение дефолтных опций в config/general.h (PING_CMD, IPSTAT_CMD, CONSOLE_CMD, REBOOT_CMD, POWEROFF) --default -> включение дефолтных опций в config/general.h (PING_CMD, IPSTAT_CMD, CONSOLE_CMD, REBOOT_CMD, POWEROFF)
--patch -> применение /develop/certtrust.patch к /root/ipxe (git apply) и активация HTTPS, CERT_CMD --patch -> применение /develop/certtrust.patch к /root/ipxe (git apply) и активация HTTPS, CERT_CMD
--force -> не открывать редактор (nano), собирать с шаблонными start.ipxe и текущим config/general.h
EOF EOF
} }
@ -235,6 +236,7 @@ ANY=0
OPT_DEFAULT=0 OPT_DEFAULT=0
OPT_PATCH=0 OPT_PATCH=0
OPT_FORCE=0
for arg in "$@"; do for arg in "$@"; do
case "$arg" in case "$arg" in
@ -243,6 +245,7 @@ for arg in "$@"; do
--iso|-i) BUILD_ISO=1; ANY=1 ;; --iso|-i) BUILD_ISO=1; ANY=1 ;;
--default) OPT_DEFAULT=1 ;; --default) OPT_DEFAULT=1 ;;
--patch) OPT_PATCH=1 ;; --patch) OPT_PATCH=1 ;;
--force|-f) OPT_FORCE=1 ;;
-h|--help) usage; exit 0 ;; -h|--help) usage; exit 0 ;;
*) *)
echo "Неизвестный флаг: $arg" >&2 echo "Неизвестный флаг: $arg" >&2
@ -268,7 +271,9 @@ PATCH_FILE="/develop/certtrust.patch"
# ---- проверки ---- # ---- проверки ----
[ -d "$SRC" ] || { echo "Отсутствует каталог: $SRC" >&2; exit 1; } [ -d "$SRC" ] || { echo "Отсутствует каталог: $SRC" >&2; exit 1; }
command -v nano >/dev/null 2>&1 || { echo "Требуется nano" >&2; exit 1; } if [ "$OPT_FORCE" -eq 0 ]; then
command -v nano >/dev/null 2>&1 || { echo "Требуется nano (или используйте --force)" >&2; exit 1; }
fi
mkdir -p "$(dirname "$FILE")" "$(dirname "$CONFIG")" mkdir -p "$(dirname "$FILE")" "$(dirname "$CONFIG")"
# ---- запись шаблона start.ipxe ---- # ---- запись шаблона start.ipxe ----
@ -305,13 +310,19 @@ if [ "$OPT_PATCH" -eq 1 ]; then
sed -i 's|//[[:space:]]*#define[[:space:]]*CERT_CMD|#define CERT_CMD|' "$CONFIG" sed -i 's|//[[:space:]]*#define[[:space:]]*CERT_CMD|#define CERT_CMD|' "$CONFIG"
fi fi
# ---- редактирование ---- # ---- редактирование (опционально) ----
echo "Открытие в nano: $FILE" if [ "$OPT_FORCE" -eq 0 ]; then
nano "$FILE" echo "Открытие в nano: $FILE"
[ -f "$FILE" ] || { echo "Отсутствует файл: $FILE; сборка прервана" >&2; exit 1; } nano "$FILE"
[ -f "$FILE" ] || { echo "Отсутствует файл: $FILE; сборка прервана" >&2; exit 1; }
echo "Открытие в nano: $CONFIG" echo "Открытие в nano: $CONFIG"
nano "$CONFIG" nano "$CONFIG"
else
echo "Режим --force: редактирование пропущено."
echo " start.ipxe: $FILE"
echo " general.h : $CONFIG"
fi
# ---- сборка ---- # ---- сборка ----
cd "$SRC" cd "$SRC"