]> glassweightruler.freedombox.rocks Git - Ventoy.git/blob - IMG/cpio/ventoy/hook/debian/porteus-hook.sh
update tip message for VTOY_DEFAULT_SEARCH_ROOT (#1373)
[Ventoy.git] / IMG / cpio / ventoy / hook / debian / porteus-hook.sh
1 #!/ventoy/busybox/sh
2 #************************************************************************************
3 # Copyright (c) 2020, longpanda <admin@ventoy.net>
4 #
5 # This program is free software; you can redistribute it and/or
6 # modify it under the terms of the GNU General Public License as
7 # published by the Free Software Foundation; either version 3 of the
8 # License, or (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 # General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, see <http://www.gnu.org/licenses/>.
17 #
18 #************************************************************************************
19
20 porteus_hook() {
21 $SED "/searching *for *\$SGN *file/i\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/porteus-disk.sh" -i $1
22 $SED "/searching *for *\$CFG *file/i\ $BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/porteus-disk.sh" -i $1
23 }
24
25 vtPath=$($VTOY_PATH/tool/vtoydump -p $VTOY_PATH/ventoy_os_param)
26 echo $vtPath | $GREP -q " "
27 _vtRet1=$?
28
29 $GREP -q exfat /proc/filesystems
30 _vtRet2=$?
31
32 echo "_vtRet1=$_vtRet1 _vtRet2=$_vtRet2 ..." >> $VTLOG
33
34 if [ $_vtRet1 -ne 0 -a $_vtRet2 -eq 0 ]; then
35 vtFindFlag=0
36 $GREP '`value from`' /usr/* -r | $AWK -F: '{print $1}' | while read vtline; do
37 echo "hooking $vtline ..." >> $VTLOG
38 $SED "s#\`value from\`#$vtPath#g" -i $vtline
39 vtFindFlag=1
40 done
41
42 if [ $vtFindFlag -eq 0 ]; then
43 if $GREP -q '`value from`' /linuxrc; then
44 if $GREP -q "searching *for *\$CFG *file" /linuxrc; then
45 echo "hooking linuxrc CFG..." >> $VTLOG
46 $SED "/searching *for *\$CFG *file/i$BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/porteus-path.sh" -i /linuxrc
47 $SED "/searching *for *\$CFG *file/iFROM=\$(cat /porteus-from)" -i /linuxrc
48 $SED "/searching *for *\$CFG *file/iISO=\$(cat /porteus-from)" -i /linuxrc
49 vtFindFlag=1
50 else
51 echo "hooking linuxrc SGN..." >> $VTLOG
52 $SED "/searching *for *\$SGN *file/i$BUSYBOX_PATH/sh $VTOY_PATH/hook/debian/porteus-path.sh" -i /linuxrc
53 $SED "/searching *for *\$SGN *file/iFROM=\$(cat /porteus-from)" -i /linuxrc
54 $SED "/searching *for *\$SGN *file/iISO=\$(cat /porteus-from)" -i /linuxrc
55 vtFindFlag=1
56 fi
57 fi
58 fi
59
60 else
61 for vtfile in '/linuxrc' '/init'; do
62 if [ -e $vtfile ]; then
63 if ! $GREP -q ventoy $vtfile; then
64 echo "hooking disk $vtfile ..." >> $VTLOG
65 porteus_hook $vtfile
66 fi
67 fi
68 done
69 fi
70
71
72 # replace blkid in system
73 vtblkid=$($BUSYBOX_PATH/which blkid)
74 $BUSYBOX_PATH/rm -f $vtblkid
75 $BUSYBOX_PATH/cp -a $BUSYBOX_PATH/blkid $vtblkid