添加镜像文件大小选项到表单

This commit is contained in:
Ing 2025-05-07 15:43:08 +08:00
parent 59501a2d4a
commit de93239f97
20 changed files with 138 additions and 65 deletions

View File

@ -38,6 +38,7 @@ jobs:
warinfo = 'false'
format = ''
size = ''
language= ''
model = ''
version = ''
@ -49,6 +50,7 @@ jobs:
jsonbody = json.loads(issuebody)
iscustom = 'true'
format = jsonbody.get('format', '')
size = jsonbody.get('size', '')
language = jsonbody.get('language', '')
model = jsonbody.get('model', '')
version = jsonbody.get('version', '')
@ -66,6 +68,7 @@ jobs:
set_output("warinfo", warinfo)
set_output("format", format)
set_output("size", size)
set_output("language", language)
set_output("model", model)
set_output("version", version)
@ -262,6 +265,23 @@ jobs:
exit 1
fi
case "${{ env.size }}" in
2GB)
echo "2GB"
;;
4GB)
echo "4GB"
sudo ./localbuild.sh resize rr/rr.img +2048M
;;
8GB)
echo "8GB"
sudo ./localbuild.sh resize rr/rr.img +6144M
;;
*)
echo "unknown size"
;;
esac
ls rr -al
RR_VERSION_FILE="rr/ws/mnt/p1/RR_VERSION"
@ -283,38 +303,52 @@ jobs:
echo "Of course, you can also modify the settings yourself."
} >README.txt
if [ "${{ env.format }}" = "ova" ]; then
. scripts/func.sh "${{ secrets.RRORG }}"
convertova "rr/rr.img" "rr/rr.ova"
(cd rr && sha256sum rr.ova >../sha256sum)
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.ova.zip" -j rr/rr.ova ${USER_CONFIG_FILE} sha256sum README.txt
elif [ "${{ env.format }}" = "vmx" ]; then
. scripts/func.sh "${{ secrets.RRORG }}"
convertvmx "rr/rr.img" "rr.vmx" # rr.vmx is a directory
(cd rr.vmx && sha256sum * >../sha256sum)
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vmx.zip" -r rr.vmx ${USER_CONFIG_FILE} sha256sum README.txt
elif [ "${{ env.format }}" = "vmdk" ]; then
qemu-img convert rr/rr.img -O vmdk -o 'adapter_type=lsilogic,subformat=streamOptimized,compat6' rr/rr.vmdk
(cd rr && sha256sum rr.vmdk >../sha256sum)
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vmdk.zip" -j rr/rr.vmdk ${USER_CONFIG_FILE} sha256sum README.txt
elif [ "${{ env.format }}" = "flat" ]; then
qemu-img convert rr/rr.img -O vmdk -o 'adapter_type=lsilogic,subformat=monolithicFlat,compat6' rr/rr.vmdk
(cd rr && sha256sum rr*.vmdk >../sha256sum)
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.flat.zip" -j rr/rr*.vmdk ${USER_CONFIG_FILE} sha256sum README.txt
elif [ "${{ env.format }}" = "vhd" ]; then
. scripts/func.sh "${{ secrets.RRORG }}"
qemu-img convert rr/rr.img -O vpc rr/rr.vhd
createvmc "rr/rr.vhd" "rr/rr.vmc"
(cd rr && sha256sum rr.vhd >../sha256sum)
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vhd.zip" -j rr/rr.vmc rr/rr.vhd ${USER_CONFIG_FILE} sha256sum README.txt
elif [ "${{ env.format }}" = "vhdx" ]; then
qemu-img convert rr/rr.img -O vhdx -o subformat=dynamic rr/rr.vhdx
(cd rr && sha256sum rr.vhdx >../sha256sum)
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vhdx.zip" -j rr/rr.vhdx ${USER_CONFIG_FILE} sha256sum README.txt
else
(cd rr && sha256sum rr.img >../sha256sum)
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.img.zip" -j rr/rr.img ${USER_CONFIG_FILE} sha256sum README.txt
fi
case "${{ env.format }}" in
ova)
echo "OVA"
. scripts/func.sh "${{ secrets.RRORG }}"
convertova "rr/rr.img" "rr/rr.ova"
(cd rr && sha256sum rr.ova >../sha256sum)
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.ova.zip" -j rr/rr.ova ${USER_CONFIG_FILE} sha256sum README.txt
;;
vmx)
echo "VMX"
. scripts/func.sh "${{ secrets.RRORG }}"
convertvmx "rr/rr.img" "rr.vmx" # rr.vmx is a directory
(cd rr.vmx && sha256sum * >../sha256sum)
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vmx.zip" -r rr.vmx ${USER_CONFIG_FILE} sha256sum README.txt
;;
vmdk)
echo "VMDK"
qemu-img convert rr/rr.img -O vmdk -o 'adapter_type=lsilogic,subformat=streamOptimized,compat6' rr/rr.vmdk
(cd rr && sha256sum rr.vmdk >../sha256sum)
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vmdk.zip" -j rr/rr.vmdk ${USER_CONFIG_FILE} sha256sum README.txt
;;
flat)
echo "FLAT"
qemu-img convert rr/rr.img -O vmdk -o 'adapter_type=lsilogic,subformat=monolithicFlat,compat6' rr/rr.vmdk
(cd rr && sha256sum rr*.vmdk >../sha256sum)
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.flat.zip" -j rr/rr*.vmdk ${USER_CONFIG_FILE} sha256sum README.txt
;;
vhd)
echo "VHD"
. scripts/func.sh "${{ secrets.RRORG }}"
qemu-img convert rr/rr.img -O vpc rr/rr.vhd
createvmc "rr/rr.vhd" "rr/rr.vmc"
(cd rr && sha256sum rr.vhd >../sha256sum)
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vhd.zip" -j rr/rr.vmc rr/rr.vhd ${USER_CONFIG_FILE} sha256sum README.txt
;;
vhdx)
echo "VHDX"
qemu-img convert rr/rr.img -O vhdx -o subformat=dynamic rr/rr.vhdx
(cd rr && sha256sum rr.vhdx >../sha256sum)
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.vhdx.zip" -j rr/rr.vhdx ${USER_CONFIG_FILE} sha256sum README.txt
;;
*)
echo "IMG"
(cd rr && sha256sum rr.img >../sha256sum)
zip -9 "rr-${MODEL}-${TAG}-${{ github.run_id }}.img.zip" -j rr/rr.img ${USER_CONFIG_FILE} sha256sum README.txt
esac
echo "TAG=${TAG}" >> $GITHUB_ENV

View File

@ -207,7 +207,7 @@
let formData = new FormData(form);
var title = "custom";
var body = {};
var _parameters = ["title", "format", "language", "model", "version", "kernel", "addons", "modules"];
var _parameters = ["title", "format", "size", "language", "model", "version", "kernel", "addons", "modules"];
for (var key in _parameters) {
var name = _parameters[key];
if ($("#" + name).is(":hidden")) { continue; }
@ -301,6 +301,18 @@
</select>
</div>
</div>
<div class="form-group mt-1 mb-2" id="size_item">
<div class="form-group-header">
<label class="color-fg-default text-mono f6">Size:</label>
</div>
<div class="form-group-body">
<select class="form-select form-control select-sm input-contrast" id="size" name="inputs[size]" value="">
<option value="2GB">2GB</option>
<option selected="selected" value="4GB">4GB</option>
<option value="8GB">8GB</option>
</select>
</div>
</div>
<div class="form-group mt-1 mb-2" id="language_item">
<div class="form-group-header">
<label class="color-fg-default text-mono f6">Language:</label>

View File

@ -1094,8 +1094,8 @@ msgid "No disk selected!"
msgstr "لا تم اختيار حاويه!"
#: menu.sh:2338
msgid "Disk %s size is less than 1GB and cannot be cloned!"
msgstr "حاويه %s حجمها اقل من 1GB و لا يمكن تنسخها!"
msgid "Disk %s size is less than 2GB and cannot be cloned!"
msgstr "حاويه %s حجمها اقل من 2GB و لا يمكن تنسخها!"
#: menu.sh:2342
msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?"

View File

@ -1095,8 +1095,8 @@ msgid "No disk selected!"
msgstr "Keine Festplatte ausgewählt!"
#: menu.sh:2338
msgid "Disk %s size is less than 1GB and cannot be cloned!"
msgstr "Festplatte %s ist kleiner als 1GB und kann nicht geklont werden!"
msgid "Disk %s size is less than 2GB and cannot be cloned!"
msgstr "Festplatte %s ist kleiner als 2GB und kann nicht geklont werden!"
#: menu.sh:2342
msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?"

View File

@ -1094,7 +1094,7 @@ msgid "No disk selected!"
msgstr ""
#: menu.sh:2338
msgid "Disk %s size is less than 1GB and cannot be cloned!"
msgid "Disk %s size is less than 2GB and cannot be cloned!"
msgstr ""
#: menu.sh:2342

View File

@ -1095,8 +1095,8 @@ msgid "No disk selected!"
msgstr "¡No hay ningún disco seleccionado!"
#: menu.sh:2338
msgid "Disk %s size is less than 1GB and cannot be cloned!"
msgstr "Disk %s de tamaño es inferior a 1GB y no se puede clonar!"
msgid "Disk %s size is less than 2GB and cannot be cloned!"
msgstr "Disk %s de tamaño es inferior a 2GB y no se puede clonar!"
#: menu.sh:2342
msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?"

View File

@ -1095,7 +1095,7 @@ msgid "No disk selected!"
msgstr "Aucun disque sélectionné!"
#: menu.sh:2338
msgid "Disk %s size is less than 1GB and cannot be cloned!"
msgid "Disk %s size is less than 2GB and cannot be cloned!"
msgstr "La taille du disque %s est inférieure à 1 Go et ne peut pas être clonée !"
#: menu.sh:2342

View File

@ -1094,8 +1094,8 @@ msgid "No disk selected!"
msgstr "ディスクが選択されていません!"
#: menu.sh:2338
msgid "Disk %s size is less than 1GB and cannot be cloned!"
msgstr "ディスク %s のサイズが1GB未満で、クローンできません"
msgid "Disk %s size is less than 2GB and cannot be cloned!"
msgstr "ディスク %s のサイズが2GB未満で、クローンできません"
#: menu.sh:2342
msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?"

View File

@ -1094,8 +1094,8 @@ msgid "No disk selected!"
msgstr "선택한 디스크가 없습니다!"
#: menu.sh:2338
msgid "Disk %s size is less than 1GB and cannot be cloned!"
msgstr "디스크 %s 크기가 1GB 미만이어서 복제할 수 없습니다!"
msgid "Disk %s size is less than 2GB and cannot be cloned!"
msgstr "디스크 %s 크기가 2GB 미만이어서 복제할 수 없습니다!"
#: menu.sh:2342
msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?"

View File

@ -1239,7 +1239,7 @@ msgid "No disk selected!"
msgstr ""
#: menu.sh:2338
msgid "Disk %s size is less than 1GB and cannot be cloned!"
msgid "Disk %s size is less than 2GB and cannot be cloned!"
msgstr ""
#: menu.sh:2342

View File

@ -1094,7 +1094,7 @@ msgid "No disk selected!"
msgstr "Диск не выбран!"
#: menu.sh:2338
msgid "Disk %s size is less than 1GB and cannot be cloned!"
msgid "Disk %s size is less than 2GB and cannot be cloned!"
msgstr "Размер диска %s меньше 1 ГБ и не может быть клонирован!"
#: menu.sh:2342

View File

@ -1095,8 +1095,8 @@ msgid "No disk selected!"
msgstr "ไม่มีดิสก์ที่เลือก!"
#: menu.sh:2338
msgid "Disk %s size is less than 1GB and cannot be cloned!"
msgstr "ขนาดดิสก์ %s น้อยกว่า 1GB และไม่สามารถคัดลอก!"
msgid "Disk %s size is less than 2GB and cannot be cloned!"
msgstr "ขนาดดิสก์ %s น้อยกว่า 2GB และไม่สามารถคัดลอก!"
#: menu.sh:2342
msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?"

View File

@ -1094,8 +1094,8 @@ msgid "No disk selected!"
msgstr "Disk seçilmedi!"
#: menu.sh:2338
msgid "Disk %s size is less than 1GB and cannot be cloned!"
msgstr "%s disk boyutu 1GB'den küçük ve klonlanamaz!"
msgid "Disk %s size is less than 2GB and cannot be cloned!"
msgstr "%s disk boyutu 2GB'den küçük ve klonlanamaz!"
#: menu.sh:2342
msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?"

View File

@ -1095,7 +1095,7 @@ msgid "No disk selected!"
msgstr "Немає вибраного диска!"
#: menu.sh:2338
msgid "Disk %s size is less than 1GB and cannot be cloned!"
msgid "Disk %s size is less than 2GB and cannot be cloned!"
msgstr "Розмір диска %s менше 1 Гб і не можна клонувати!"
#: menu.sh:2342

View File

@ -1095,8 +1095,8 @@ msgid "No disk selected!"
msgstr "Không có đĩa nào được chọn!"
#: menu.sh:2338
msgid "Disk %s size is less than 1GB and cannot be cloned!"
msgstr "Kích thước đĩa %s nhỏ hơn 1GB và không thể được sao chép!"
msgid "Disk %s size is less than 2GB and cannot be cloned!"
msgstr "Kích thước đĩa %s nhỏ hơn 2GB và không thể được sao chép!"
#: menu.sh:2342
msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?"

View File

@ -1094,8 +1094,8 @@ msgid "No disk selected!"
msgstr "未选择磁盘!"
#: menu.sh:2338
msgid "Disk %s size is less than 1GB and cannot be cloned!"
msgstr "磁盘 %s 的大小小于 1GB无法克隆!"
msgid "Disk %s size is less than 2GB and cannot be cloned!"
msgstr "磁盘 %s 的大小小于 2GB无法克隆!"
#: menu.sh:2342
msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?"

View File

@ -1094,8 +1094,8 @@ msgid "No disk selected!"
msgstr "未選擇磁碟!"
#: menu.sh:2338
msgid "Disk %s size is less than 1GB and cannot be cloned!"
msgstr "磁碟 %s 的大小小於 1GB, 無法克隆!"
msgid "Disk %s size is less than 2GB and cannot be cloned!"
msgstr "磁碟 %s 的大小小於 2GB, 無法克隆!"
#: menu.sh:2342
msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?"

View File

@ -1094,8 +1094,8 @@ msgid "No disk selected!"
msgstr "未選擇磁碟!"
#: menu.sh:2338
msgid "Disk %s size is less than 1GB and cannot be cloned!"
msgstr "磁碟 %s 大小小於 1GB無法複製"
msgid "Disk %s size is less than 2GB and cannot be cloned!"
msgstr "磁碟 %s 大小小於 2GB無法複製"
#: menu.sh:2342
msgid "Warning:\\nDisk %s will be formatted and written to the bootloader. Please confirm that important data has been backed up. \\nDo you want to continue?"

View File

@ -2359,9 +2359,9 @@ function cloneBootloaderDisk() {
fi
TODESK="${resp}"
SIZE=$(df -m "${TODESK}" 2>/dev/null | awk 'NR==2 {print $2}')
if [ ${SIZE:-0} -lt 1024 ]; then
if [ ${SIZE:-0} -lt 1536 ]; then
DIALOG --title "$(TEXT "Settings")" \
--msgbox "$(printf "$(TEXT "Disk %s size is less than 1GB and cannot be cloned!")" "${TODESK}")" 0 0
--msgbox "$(printf "$(TEXT "Disk %s size is less than 2GB and cannot be cloned!")" "${TODESK}")" 0 0
return
fi

View File

@ -178,9 +178,8 @@ function pack() {
local RRIMGPATH LOOPX
RRIMGPATH="$(realpath "${1:-rr.img}")"
if [ ! -f "${RRIMGPATH}" ]; then
gzip -dc "${CHROOT_PATH}/initrd/opt/rr/grub.img.gz" >"${RRIMGPATH}"
fi
rm -f "${RRIMGPATH}"
gzip -dc "${CHROOT_PATH}/initrd/opt/rr/grub.img.gz" >"${RRIMGPATH}"
fdisk -l "${RRIMGPATH}"
LOOPX=$(sudo losetup -f)
@ -220,4 +219,32 @@ function pack() {
exit 0
}
function resize() {
local INPUT_FILE="${1}"
local CHANGE_SIZE="${2}"
local OUTPUT_FILE="${3:-${INPUT_FILE}}"
[ -z "${INPUT_FILE}" ] || [ ! -f "${INPUT_FILE}" ] && exit 1
[ -z "${CHANGE_SIZE}" ] && exit 1
INPUT_FILE="$(realpath "${INPUT_FILE}")"
OUTPUT_FILE="$(realpath "${OUTPUT_FILE}")"
local SIZE=$(($(du -sm "${INPUT_FILE}" 2>/dev/null | awk '{print $1}')$(echo "${CHANGE_SIZE}" | sed 's/M//g; s/b//g')))
[ "${SIZE:-0}" -lt 0 ] && exit 1
if [ ! "${INPUT_FILE}" = "${OUTPUT_FILE}" ]; then
sudo cp -f "${INPUT_FILE}" "${OUTPUT_FILE}"
fi
sudo truncate -s ${SIZE}M "${OUTPUT_FILE}"
echo -e "d\n\nn\n\n\n\n\nn\nw" | sudo fdisk "${OUTPUT_FILE}" >/dev/null 2>&1
local LOOPX
LOOPX=$(sudo losetup -f)
sudo losetup -P "${LOOPX}" "${OUTPUT_FILE}"
sudo e2fsck -fp "$(find "${LOOPX}p"* -maxdepth 0 2>/dev/null | sort -n | tail -1)"
sudo resize2fs "$(find "${LOOPX}p"* -maxdepth 0 2>/dev/null | sort -n | tail -1)"
sudo losetup -d "${LOOPX}"
}
"$@"