浏览代码

feat: Check if IP is specified (#1135)

Kroese 3 月之前
父节点
当前提交
522d646fa3
共有 2 个文件被更改,包括 7 次插入2 次删除
  1. 4 1
      src/define.sh
  2. 3 1
      src/install.sh

+ 4 - 1
src/define.sh

@@ -1300,6 +1300,9 @@ prepareInstall() {
   [ -n "$PASSWORD" ] && password="$PASSWORD"
   [ -n "$USERNAME" ] && username=$(echo "$USERNAME" | sed 's/[^[:alnum:]@!._-]//g')
 
+  local ip="20.20.20.1"
+  [ -n "${VM_NET_IP:-}" ] && ip="${VM_NET_IP%.*}.1"
+
   # These are not pirated keys, they come from the official MS documentation.
   if [[ "${driver,,}" == "xp" ]]; then
     if [[ "${arch,,}" == "x86" ]]; then
@@ -1494,7 +1497,7 @@ prepareInstall() {
           echo "Set oFSO = CreateObject(\"Scripting.FileSystemObject\")"
           echo "Set oHosts = oFSO.GetFile(\"C:\Windows\System32\drivers\etc\hosts\")"
           echo "Set fileAPPEND = oFSO.OpenTextFile(\"C:\Windows\System32\drivers\etc\hosts\", 8, true)"
-          echo "fileAPPEND.Write(\"${VM_NET_IP%.*}.1      host.lan\")"
+          echo "fileAPPEND.Write(\"$ip      host.lan\")"
           echo "fileAPPEND.Close()"
           echo ""
   } | unix2dos > "$dir/\$OEM\$/admin.vbs"

+ 3 - 1
src/install.sh

@@ -628,7 +628,9 @@ updateXML() {
   local language="$2"
   local culture region user admin pass keyboard
 
-  sed -i "s/ 20.20.20.1 / ${VM_NET_IP%.*}.1 /g" "$asset"
+  if [ -n "${VM_NET_IP:-}" ]; then
+    sed -i "s/ 20.20.20.1 / ${VM_NET_IP%.*}.1 /g" "$asset"
+  fi
 
   [ -z "$HEIGHT" ] && HEIGHT="720"
   [ -z "$WIDTH" ] && WIDTH="1280"