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