####################################################################
# #
-# Step 1 : extract busybox & set busybox enviroment #
+# Step 1 : extract busybox & set busybox environment #
# #
####################################################################
. /ventoy/hook/ventoy-hook-lib.sh
-# Just for KVM test enviroment
+# Just for KVM test environment
$BUSYBOX_PATH/modprobe virtio_blk 2>/dev/null
$BUSYBOX_PATH/modprobe virtio_pci 2>/dev/null
. /ventoy/hook/ventoy-hook-lib.sh
-# Just for KVM test enviroment
+# Just for KVM test environment
$BUSYBOX_PATH/modprobe virtio_blk 2>/dev/null
$BUSYBOX_PATH/modprobe virtio_pci 2>/dev/null
echo ' OPTION: (optional)'
echo ' -H x.x.x.x http server IP address (default is 127.0.0.1)'
echo ' -p PORT http server PORT (default is 24680)'
- echo " -n don't start web browser"
echo ' -h print this help'
echo ''
}
echo ""
}
-check_option() {
- app="$1"
- $app --help 2>&1 | grep -q "$2"
-}
-
-get_user() {
- name=$(logname)
- if [ -n "$name" -a "$name" != "root" ]; then
- echo $name; return
- fi
-
- name=${HOME#/home/}
- if [ -n "$name" -a "$name" != "root" ]; then
- echo $name; return
- fi
-}
-
-chromium_proc() {
- app="$1"
-
- url="http://${HOST}:${PORT}/index.html"
-
- if check_option "$app" '[-][-]app='; then
- su $VUSER -c "$app --app=$url >> $LOGFILE 2>&1"
- elif check_option "$app" '[-][-]new[-]window='; then
- su $VUSER -c "$app --new-window $url >> $LOGFILE 2>&1"
- else
- su $VUSER -c "$app $url >> $LOGFILE 2>&1"
- fi
-}
-
uid=$(id -u)
if [ $uid -ne 0 ]; then
print_err "Please use sudo or run the script as root."
if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
print_usage
exit 0
- elif [ "$1" = "-n" ]; then
- NOWEB=1
elif [ "$1" = "-H" ]; then
shift
if echo $1 | grep -q '[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*'; then
exit 1
fi
-VUSER=$(get_user)
LOGFILE=log.txt
#delete the log.txt if it's more than 8MB
if [ -f $LOGFILE ]; then
logsize=$(stat -c '%s' $LOGFILE)
if [ $logsize -gt 8388608 ]; then
rm -f $LOGFILE
- su $VUSER -c "touch $LOGFILE"
fi
-else
- su $VUSER -c "touch $LOGFILE"
fi
-
if [ -f ./tool/$TOOLDIR/V2DServer.xz ]; then
xz -d ./tool/$TOOLDIR/V2DServer.xz
chmod +x ./tool/$TOOLDIR/V2DServer
fi
-V2DServer "$HOST" "$PORT" &
-
vtVer=$(cat ventoy/version)
echo ""
-echo "=================================================================="
-echo " Ventoy Server $vtVer is running at http://${HOST}:${PORT} ..."
-echo "=================================================================="
-echo ""
-echo "################ Press Ctrl + C to exit ######################"
-echo ""
-
-if [ "$NOWEB" = "1" ]; then
- echo "Please open your web browser and visit http://${HOST}:${PORT}"
-else
- if which -a google-chrome-stable >> $LOGFILE 2>&1; then
- chromium_proc google-chrome-stable
- elif which -a google-chrome >> $LOGFILE 2>&1; then
- chromium_proc google-chrome
- elif which -a chrome >> $LOGFILE 2>&1; then
- chromium_proc chrome
- elif which -a browser >> $LOGFILE 2>&1; then
- chromium_proc browser
- elif which -a firefox >> $LOGFILE 2>&1; then
- su $VUSER -c "firefox --no-remote \"http://${HOST}:${PORT}/index.html\""
- else
- echo "Please open your web browser and visit http://${HOST}:${PORT}"
- fi
-fi
-
-if ps -ef | grep "V2DServer.*$HOST.*$PORT" | grep -q -v grep; then
- echo ""
+echo "==============================================================="
+if [ "$LANG" = "zh_CN.UTF-8" ]; then
+ echo " Ventoy Server $vtVer ÒѾÆô¶¯ ..."
+ echo " Çë´ò¿ªä¯ÀÀÆ÷£¬·ÃÎÊ http://${HOST}:${PORT}"
else
- print_err "Ventoy Server Error! Please check log.txt."
+ echo " Ventoy Server $vtVer is running ..."
+ echo " Please open your browser and visit http://${HOST}:${PORT}"
fi
+echo "==============================================================="
+echo ""
+echo "################## Press Ctrl + C to exit #####################"
+echo ""
-wait $!
-
+V2DServer "$HOST" "$PORT"
if [ -n "$OLDDIR" ]; then
CURDIR=$(pwd)
--- /dev/null
+AdminLTE follows the MIT License (see MIT.txt)\r
--- /dev/null
+bootstrap follows the MIT License (see MIT.txt)\r
--- /dev/null
+jquery follows the MIT License (see MIT.txt)\r
--- /dev/null
+libhttp follows the MIT License (see MIT.txt)\r
+\r
+Ventoy does not modify its source code, only its header file and lib is used.\r
rc = ventoy_http_start(ip, port);
if (rc)
{
- printf("failed to start http server\n");
+ printf("Ventoy failed to start http server, check log.txt for detail\n");
}
else
{
\r
<div class="form-group" style="width:520px;">\r
<div class="col-sm-6" style="float:left; width:350px;">\r
- <input type="number" min="1" class="form-control" id="vtoy_preserve_space" style="font-family: couriew new;font-size: 14px;"/> \r
+ <input type="text" maxlength="14" class="form-control" id="vtoy_preserve_space" style="font-family: couriew new;font-size: 14px;"/> \r
</div>\r
<div class="col-sm-6" style="float:left; width:150px;">\r
<select id="vtoy_space_unit_dropbox" class="form-control valid vtoyselect2" aria-invalid="false">\r
$('h3#vtoy_local_ver_title').text(vtoy_cur_language.STR_LOCAL_VER);\r
$('h3#vtoy_dev_ver_title').text(vtoy_cur_language.STR_DISK_VER);\r
$('span#vtoy_status_title').text(vtoy_cur_language.STR_STATUS);\r
- $('span#vtoy_dev_title').text(vtoy_cur_language.STR_DEVICE);\r
+ \r
+ if ($('#vtoy_preserve_space_checkbox').is(':checked')) {\r
+ var valx = $('#vtoy_preserve_space').val();\r
+ if ($('#vtoy_space_unit_dropbox').val() > 0) {\r
+ $('span#vtoy_dev_title').text(vtoy_cur_language.STR_DEVICE + ' [ -' + valx + 'MB ]');\r
+ } else {\r
+ $('span#vtoy_dev_title').text(vtoy_cur_language.STR_DEVICE + ' [ -' + valx + 'GB ]');\r
+ }\r
+ } else {\r
+ $('span#vtoy_dev_title').text(vtoy_cur_language.STR_DEVICE);\r
+ }\r
\r
$('span#vtoy_menu_secure_boot').text(vtoy_cur_language.STR_MENU_SECURE_BOOT);\r
$('span#vtoy_menu_part_style').text(vtoy_cur_language.STR_MENU_PART_STYLE);\r
$('#vtoy_set_part_cfg_modal').modal({backdrop: 'static', keyboard: false});\r
}\r
\r
- $("#vtoy_modal_btn_ok").click(function(){ \r
+ $("#vtoy_modal_btn_ok").click(function(){\r
+ if ($('#vtoy_preserve_space_checkbox').is(':checked')) {\r
+ var valx = $('#vtoy_preserve_space').val();\r
+ if (valx.length > 14) {\r
+ ventoy_display_alert('error', vtoy_cur_language.STR_SPACE_VAL_INVALID);\r
+ return;\r
+ }\r
+ \r
+ var regPat = /^\d+$/;\r
+ if (!(regPat.test(valx))) {\r
+ ventoy_display_alert('error', vtoy_cur_language.STR_SPACE_VAL_INVALID);\r
+ return;\r
+ }\r
+ \r
+ if ($('#vtoy_space_unit_dropbox').val() > 0) {\r
+ $('span#vtoy_dev_title').text(vtoy_cur_language.STR_DEVICE + ' [ -' + valx + 'MB ]');\r
+ } else {\r
+ $('span#vtoy_dev_title').text(vtoy_cur_language.STR_DEVICE + ' [ -' + valx + 'GB ]');\r
+ }\r
+ } else {\r
+ $('span#vtoy_dev_title').text(vtoy_cur_language.STR_DEVICE);\r
+ }\r
$("#vtoy_set_part_cfg_modal").modal('hide');\r
});\r
\r
\r
if ($('#vtoy_preserve_space_checkbox').is(':checked')) {\r
var valx = $('#vtoy_preserve_space').val();\r
+ if (valx.length > 14) {\r
+ ventoy_display_alert('error', vtoy_cur_language.STR_SPACE_VAL_INVALID);\r
+ return;\r
+ }\r
+\r
if (valx > 0) {\r
if ($('#vtoy_space_unit_dropbox').val() > 0) {\r
reserve = valx * 1024 * 1024;\r
info "$vline"
info "**************************************************"
echo ""
-info "Scaning devices ......"
+info "Scanning devices ......"
sleep 5
enum_disk
* Menu dynamically switchable between List/TreeView mode
* "Ventoy Compatible" concept
* Plugin Framework
-* Injection files to runtime enviroment
+* Injection files to runtime environment
* Boot configuration file dynamically replacement
* Highly customizable theme and menu
* USB drive write-protected support