mirror of https://github.com/ventoy/Ventoy
parent
b63ce2a3df
commit
1840cb8f38
@ -0,0 +1,192 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
print_usage() {
|
||||||
|
echo 'Usage: VentoyWebDeepin.sh [ OPTION ]'
|
||||||
|
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 ' -h print this help'
|
||||||
|
echo ''
|
||||||
|
}
|
||||||
|
|
||||||
|
print_err() {
|
||||||
|
echo ""
|
||||||
|
echo "$*"
|
||||||
|
echo ""
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
uid=$(id -u)
|
||||||
|
if [ $uid -ne 0 ]; then
|
||||||
|
exec sudo sh $0 $*
|
||||||
|
fi
|
||||||
|
|
||||||
|
OLDDIR=$(pwd)
|
||||||
|
|
||||||
|
if uname -m | egrep -q 'aarch64|arm64'; then
|
||||||
|
TOOLDIR=aarch64
|
||||||
|
elif uname -m | egrep -q 'x86_64|amd64'; then
|
||||||
|
TOOLDIR=x86_64
|
||||||
|
elif uname -m | egrep -q 'mips64'; then
|
||||||
|
TOOLDIR=mips64el
|
||||||
|
else
|
||||||
|
TOOLDIR=i386
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f ./tool/$TOOLDIR/V2DServer ]; then
|
||||||
|
if [ -f ${0%VentoyWebDeepin.sh}/tool/$TOOLDIR/V2DServer ]; then
|
||||||
|
cd ${0%VentoyWebDeepin.sh}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
PATH=./tool/$TOOLDIR:$PATH
|
||||||
|
|
||||||
|
if [ ! -f ./boot/boot.img ]; then
|
||||||
|
if [ -d ./grub ]; then
|
||||||
|
echo "Don't run VentoyWebDeepin.sh here, please download the released install package, and run the script in it."
|
||||||
|
else
|
||||||
|
echo "Please run under the correct directory!"
|
||||||
|
fi
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
HOST="127.0.0.1"
|
||||||
|
PORT=24680
|
||||||
|
|
||||||
|
while [ -n "$1" ]; do
|
||||||
|
if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
|
||||||
|
print_usage
|
||||||
|
exit 0
|
||||||
|
elif [ "$1" = "-H" ]; then
|
||||||
|
shift
|
||||||
|
if echo $1 | grep -q '[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*'; then
|
||||||
|
HOST="$1"
|
||||||
|
else
|
||||||
|
print_err "Invalid host $1"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
elif [ "$1" = "-p" ]; then
|
||||||
|
shift
|
||||||
|
if [ $1 -gt 0 -a $1 -le 65535 ]; then
|
||||||
|
PORT="$1"
|
||||||
|
else
|
||||||
|
print_err "Invalid port $1"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
if ps -ef | grep "V2DServer.*$HOST.*$PORT" | grep -q -v grep; then
|
||||||
|
print_err "Another ventoy server is running now, please close it first."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
VUSER=$(get_user)
|
||||||
|
|
||||||
|
LOGFILE=log.txt
|
||||||
|
if [ -e $LOGFILE ]; then
|
||||||
|
chown $VUSER $LOGFILE
|
||||||
|
else
|
||||||
|
su $VUSER -c "touch $LOGFILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#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
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ -f ./tool/$TOOLDIR/V2DServer.xz ]; then
|
||||||
|
xz -d ./tool/$TOOLDIR/V2DServer.xz
|
||||||
|
chmod +x ./tool/$TOOLDIR/V2DServer
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf ./*_VTMPDIR
|
||||||
|
vtWebTmpDir=$(mktemp -d -p ./ --suffix=_VTMPDIR)
|
||||||
|
chown $VUSER $vtWebTmpDir
|
||||||
|
|
||||||
|
|
||||||
|
V2DServer "$HOST" "$PORT" &
|
||||||
|
V2DPid=$!
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
su $VUSER -c "browser --window-size=550,400 --app=\"http://${HOST}:${PORT}/index.html?chrome-app\" --user-data-dir=$vtWebTmpDir >> $LOGFILE 2>&1" &
|
||||||
|
WebPid=$!
|
||||||
|
|
||||||
|
|
||||||
|
vtoy_trap_exit() {
|
||||||
|
|
||||||
|
[ -d /proc/$V2DPid ] && kill -2 $V2DPid
|
||||||
|
[ -d /proc/$WebPid ] && kill -9 $WebPid
|
||||||
|
|
||||||
|
while [ -n "1" ]; do
|
||||||
|
curPid=$(ps -ef | grep -m1 "$vtWebTmpDir" | egrep -v '\sgrep\s' | awk '{print $2}')
|
||||||
|
if [ -z "$curPid" ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d /proc/$curPid ]; then
|
||||||
|
kill -9 $curPid
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
[ -d $vtWebTmpDir ] && rm -rf $vtWebTmpDir
|
||||||
|
|
||||||
|
if [ -n "$OLDDIR" ]; then
|
||||||
|
CURDIR=$(pwd)
|
||||||
|
if [ "$CURDIR" != "$OLDDIR" ]; then
|
||||||
|
cd "$OLDDIR"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
trap vtoy_trap_exit HUP INT QUIT TSTP
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
|
||||||
|
vtVer=$(cat ventoy/version)
|
||||||
|
echo ""
|
||||||
|
echo "=================================================="
|
||||||
|
if [ "$LANG" = "zh_CN.UTF-8" ]; then
|
||||||
|
echo " Ventoy Server $vtVer 已经启动 ..."
|
||||||
|
else
|
||||||
|
echo " Ventoy Server $vtVer is running ..."
|
||||||
|
fi
|
||||||
|
echo "=================================================="
|
||||||
|
echo ""
|
||||||
|
echo "########### Press Ctrl + C to exit ###############"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
wait $WebPid
|
||||||
|
|
||||||
|
[ -d /proc/$V2DPid ] && kill -2 $V2DPid
|
||||||
|
|
||||||
|
[ -d $vtWebTmpDir ] && rm -rf $vtWebTmpDir
|
||||||
|
|
||||||
|
if [ -n "$OLDDIR" ]; then
|
||||||
|
CURDIR=$(pwd)
|
||||||
|
if [ "$CURDIR" != "$OLDDIR" ]; then
|
||||||
|
cd "$OLDDIR"
|
||||||
|
fi
|
||||||
|
fi
|
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 26 KiB |
Loading…
Reference in New Issue