]> glassweightruler.freedombox.rocks Git - Ventoy.git/blob - INSTALL/ventoy_pack.sh
update for new release
[Ventoy.git] / INSTALL / ventoy_pack.sh
1 #!/bin/sh
2
3 dos2unix -q ./tool/ventoy_lib.sh
4 dos2unix -q ./tool/VentoyWorker.sh
5
6 . ./tool/ventoy_lib.sh
7
8 GRUB_DIR=../GRUB2/INSTALL
9 LANG_DIR=../LANGUAGES
10
11 if ! [ -d $GRUB_DIR ]; then
12 echo "$GRUB_DIR not exist"
13 exit 1
14 fi
15
16
17 cd ../IMG
18 sh mkcpio.sh
19 sh mkloopex.sh
20 cd -
21
22
23 LOOP=$(losetup -f)
24
25 rm -f img.bin
26 dd if=/dev/zero of=img.bin bs=1M count=256 status=none
27
28 losetup -P $LOOP img.bin
29
30 while ! grep -q 524288 /sys/block/${LOOP#/dev/}/size 2>/dev/null; do
31 echo "wait $LOOP ..."
32 sleep 1
33 done
34
35 format_ventoy_disk_mbr 0 $LOOP fdisk
36
37 $GRUB_DIR/sbin/grub-bios-setup --skip-fs-probe --directory="./grub/i386-pc" $LOOP
38
39 curver=$(get_ventoy_version_from_cfg ./grub/grub.cfg)
40
41 tmpmnt=./ventoy-${curver}-mnt
42 tmpdir=./ventoy-${curver}
43
44 rm -rf $tmpmnt
45 mkdir -p $tmpmnt
46
47 mount ${LOOP}p2 $tmpmnt
48
49 mkdir -p $tmpmnt/grub
50
51 # First copy grub.cfg file, to make it locate at front of the part2
52 cp -a ./grub/grub.cfg $tmpmnt/grub/
53
54 ls -1 ./grub/ | grep -v 'grub\.cfg' | while read line; do
55 cp -a ./grub/$line $tmpmnt/grub/
56 done
57
58 cp -a ./ventoy $tmpmnt/
59 cp -a ./EFI $tmpmnt/
60 cp -a ./tool/ENROLL_THIS_KEY_IN_MOKMANAGER.cer $tmpmnt/
61
62
63 mkdir -p $tmpmnt/tool
64 cp -a ./tool/mount* $tmpmnt/tool/
65
66 rm -f $tmpmnt/grub/i386-pc/*.img
67
68
69 umount $tmpmnt && rm -rf $tmpmnt
70
71
72 rm -rf $tmpdir
73 mkdir -p $tmpdir/boot
74 mkdir -p $tmpdir/ventoy
75 echo $curver > $tmpdir/ventoy/version
76 dd if=$LOOP of=$tmpdir/boot/boot.img bs=1 count=512 status=none
77 dd if=$LOOP of=$tmpdir/boot/core.img bs=512 count=2047 skip=1 status=none
78 xz --check=crc32 $tmpdir/boot/core.img
79
80 cp -a ./tool $tmpdir/
81 rm -f $tmpdir/ENROLL_THIS_KEY_IN_MOKMANAGER.cer
82 cp -a Ventoy2Disk.sh $tmpdir/
83 cp -a README $tmpdir/
84 cp -a plugin $tmpdir/
85 cp -a CreatePersistentImg.sh $tmpdir/
86 dos2unix -q $tmpdir/Ventoy2Disk.sh
87 dos2unix -q $tmpdir/CreatePersistentImg.sh
88
89 #32MB disk img
90 dd status=none if=$LOOP of=$tmpdir/ventoy/ventoy.disk.img bs=512 count=$VENTOY_SECTOR_NUM skip=$part2_start_sector
91 xz --check=crc32 $tmpdir/ventoy/ventoy.disk.img
92
93 losetup -d $LOOP && rm -f img.bin
94
95 rm -f ventoy-${curver}-linux.tar.gz
96
97
98 CurDir=$PWD
99 cd $tmpdir/tool
100
101 for file in $(ls); do
102 if [ "$file" != "xzcat" ] && [ "$file" != "ventoy_lib.sh" ]; then
103 xz --check=crc32 $file
104 fi
105 done
106
107 #chmod
108 cd $CurDir
109 find $tmpdir/ -type d -exec chmod 755 "{}" +
110 find $tmpdir/ -type f -exec chmod 644 "{}" +
111 chmod +x $tmpdir/Ventoy2Disk.sh
112 chmod +x $tmpdir/CreatePersistentImg.sh
113
114 tar -czvf ventoy-${curver}-linux.tar.gz $tmpdir
115
116
117
118 rm -f ventoy-${curver}-windows.zip
119 cp -a Ventoy2Disk*.exe $tmpdir/
120 cp -a $LANG_DIR/languages.ini $tmpdir/ventoy/
121 rm -rf $tmpdir/tool
122 rm -f $tmpdir/*.sh
123 rm -f $tmpdir/README
124
125
126 zip -r ventoy-${curver}-windows.zip $tmpdir/
127
128 rm -rf $tmpdir
129
130 if [ -e ventoy-${curver}-windows.zip ] && [ -e ventoy-${curver}-linux.tar.gz ]; then
131 echo -e "\n ============= SUCCESS =================\n"
132 else
133 echo -e "\n ============= FAILED =================\n"
134 exit 1
135 fi
136
137 rm -f log.txt
138