]> glassweightruler.freedombox.rocks Git - Ventoy.git/commitdiff
support Porteus v5.0rc3
authorlongpanda <admin@ventoy.net>
Sat, 9 Oct 2021 11:22:42 +0000 (19:22 +0800)
committerlongpanda <admin@ventoy.net>
Sat, 9 Oct 2021 11:22:42 +0000 (19:22 +0800)
IMG/cpio/ventoy/hook/debian/porteus-hook.sh
IMG/cpio/ventoy/hook/debian/porteus-path.sh [new file with mode: 0644]

index 689460ce205b119148509ecc6bf3be36332d3759..f63b106327db636247da328115b23b32a59be056 100644 (file)
@@ -25,13 +25,25 @@ porteus_hook() {
 if $GREP -q exfat /proc/filesystems; then
     vtPath=$($VTOY_PATH/tool/vtoydump -p $VTOY_PATH/ventoy_os_param)
     
 if $GREP -q exfat /proc/filesystems; then
     vtPath=$($VTOY_PATH/tool/vtoydump -p $VTOY_PATH/ventoy_os_param)
     
+    vtFindFlag=0
     $GREP '`value from`' /usr/* -r | $AWK -F: '{print $1}' | while read vtline; do
         echo "hooking $vtline ..." >> $VTLOG
         $SED "s#\`value from\`#$vtPath#g"  -i $vtline
     $GREP '`value from`' /usr/* -r | $AWK -F: '{print $1}' | while read vtline; do
         echo "hooking $vtline ..." >> $VTLOG
         $SED "s#\`value from\`#$vtPath#g"  -i $vtline
+        vtFindFlag=1
     done
 
     done
 
+    if [ $vtFindFlag -eq 0 ]; then
+        if $GREP -q '`value from`' /linuxrc; then
+            echo "hooking linuxrc ..." >> $VTLOG
+            $SED "/searching *for *\$CFG *file/i$BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/porteus-path.sh"  -i /linuxrc
+            $SED "/searching *for *\$CFG *file/iFROM=\$(cat /porteus-from)"  -i /linuxrc
+            $SED "/searching *for *\$CFG *file/iISO=\$(cat /porteus-from)"  -i /linuxrc
+            vtFindFlag=1
+        fi
+    fi
+
 else
 else
-    for vtfile in '/init' '/linuxrc' ; do
+    for vtfile in '/linuxrc' '/init'; do
         if [ -e $vtfile ]; then
             if ! $GREP -q ventoy $vtfile; then
                 echo "hooking $vtfile ..."  >> $VTLOG
         if [ -e $vtfile ]; then
             if ! $GREP -q ventoy $vtfile; then
                 echo "hooking $vtfile ..."  >> $VTLOG
diff --git a/IMG/cpio/ventoy/hook/debian/porteus-path.sh b/IMG/cpio/ventoy/hook/debian/porteus-path.sh
new file mode 100644 (file)
index 0000000..16297de
--- /dev/null
@@ -0,0 +1,38 @@
+#!/ventoy/busybox/sh
+#************************************************************************************
+# Copyright (c) 2020, longpanda <admin@ventoy.net>
+# 
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 3 of the
+# License, or (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
+# 
+#************************************************************************************
+
+. /ventoy/hook/ventoy-hook-lib.sh
+
+vtlog "####### $0 $* ########"
+
+VTPATH_OLD=$PATH; PATH=$BUSYBOX_PATH:$VTOY_PATH/tool:$PATH
+
+wait_for_usb_disk_ready
+
+vtdiskname=$(get_ventoy_disk_name)
+
+vtPath=$(vtoydump -p $VTOY_PATH/ventoy_os_param)
+
+if echo $vtdiskname | egrep -q "nvme|mmc|nbd"; then
+    echo ${vtdiskname}p1${vtPath} > /porteus-from
+else
+    echo ${vtdiskname}1${vtPath} > /porteus-from
+fi
+
+PATH=$VTPATH_OLD