wok diff syslinux/stuff/iso2exe/taziso @ rev 18034
syslinux/taziso: add burn
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sat May 09 21:54:15 2015 +0200 (2015-05-09) |
parents | f796d8c9c50e |
children | 551c5f787dd0 |
line diff
1.1 --- a/syslinux/stuff/iso2exe/taziso Mon Apr 13 19:10:05 2015 +0100 1.2 +++ b/syslinux/stuff/iso2exe/taziso Sat May 09 21:54:15 2015 +0200 1.3 @@ -32,15 +32,15 @@ 1.4 gettazboot() 1.5 { 1.6 echo "Creating $(basename $1) ..." 1.7 - if [ $(get 0 $ISO) -eq 23117 ]; then 1.8 - O=$(($(get 64 $ISO) - 0xC0)) 1.9 - L=$(($(get 20 $ISO) - 0xC0 - $(get 24 $ISO) - $O)) 1.10 + if [ $(get 0 "$ISO") -eq 23117 ]; then 1.11 + O=$(($(get 64 "$ISO") - 0xC0)) 1.12 + L=$(($(get 20 "$ISO") - 0xC0 - $(get 24 "$ISO") - $O)) 1.13 S=$((32+$L)) 1.14 P=$((($S+511)/512)) 1.15 E=$((4096-(32*$P))) 1.16 words2bin 0x5A4D $(($S%512)) $P 0 2 $E -1 $((${2:-0}-16)) \ 1.17 -2 0 256 -16 28 0x6C53 0x5469 0x7A61 > $1 1.18 - ddq bs=1 count=$L skip=$(echo $O) if=$ISO >> $1 1.19 + ddq bs=1 count=$L skip=$(echo $O) if="$ISO" >> $1 1.20 else 1.21 wget -O $1 http://mirror.slitaz.org/boot/tazboot.exe 1.22 fi 1.23 @@ -462,10 +462,10 @@ 1.24 1.25 See http://diddy.boot-land.net/grub4dos/files/README_GRUB4DOS.txt 1.26 EOT 1.27 - ( cd $mnt ; zip -r9 $(basename $ISO .iso).zip slitaz ) 1.28 + ( cd $mnt ; zip -r9 $(basename "$ISO" .iso).zip slitaz ) 1.29 [ "$(which advzip)" ] && advzip -z4 $mnt/*.zip 1.30 mv $mnt/*.zip . 1.31 - ls -l $PWD/$(basename $ISO .iso).zip 1.32 + ls -l $PWD/$(basename "$ISO" .iso).zip 1.33 umount $mnt 1.34 rm -rf $mnt 1.35 } 1.36 @@ -791,7 +791,7 @@ 1.37 1.38 misspkg() 1.39 { 1.40 - for i in zip kexec-tools posixovl ; do 1.41 + for i in zip kexec-tools posixovl cdrkit ; do 1.42 [ -d /var/lib/tazpkg/installed/$i/ ] && continue 1.43 [ "$1" != "install" ] && menuitem "$@" && return 1.44 tazpkg get-install $i 1.45 @@ -805,38 +805,59 @@ 1.46 1.47 ishybrid() 1.48 { 1.49 - [ $(get 510 $ISO) -eq 43605 ] || return 1.50 - C=$((2048*$(get $(((17*2048) + 71)) $ISO 4))) 1.51 - [ $(get $C $ISO 4) -eq 1 ] || return 1.52 - [ $(get $(($C+30)) $ISO 4) -eq $((0x88AA55)) ] || return 1.53 - C=$((2048*$(get $(($C+40)) $ISO 4))) 1.54 - [ $(get $(($C+64)) $ISO 4) -eq 1886961915 ] && menuitem "$@" 1.55 + [ $(get 510 "$ISO") -eq 43605 ] || return 1.56 + C=$((2048*$(get $(((17*2048) + 71)) "$ISO" 4))) 1.57 + [ $(get $C "$ISO" 4) -eq 1 ] || return 1.58 + [ $(get $(($C+30)) "$ISO" 4) -eq $((0x88AA55)) ] || return 1.59 + C=$((2048*$(get $(($C+40)) "$ISO" 4))) 1.60 + [ $(get $(($C+64)) "$ISO" 4) -eq 1886961915 ] && menuitem "$@" 1.61 } 1.62 1.63 isiso() 1.64 { 1.65 - [ $(get 32769 $ISO 4) -eq 808469571 ] && menuitem "$@" 1.66 + [ $(get 32769 "$ISO" 4) -eq 808469571 ] && menuitem "$@" 1.67 +} 1.68 + 1.69 +burnable() 1.70 +{ 1.71 + [ "$(sed '/Can wr.*1$/!d' /proc/sys/dev/cdrom/info)" ] && menuitem "$@" 1.72 +} 1.73 + 1.74 +blankable() 1.75 +{ 1.76 + [ "$(sed '/Can wr.*RW.*1$/!d' /proc/sys/dev/cdrom/info)" ] && menuitem "$@" 1.77 +} 1.78 + 1.79 +burniso() 1.80 +{ 1.81 + wodim -v speed=$(fgrep "drive speed" /proc/sys/dev/cdrom/info | cut -f3) \ 1.82 + -eject -multi "$ISO" 1.83 +} 1.84 + 1.85 +blankcd() 1.86 +{ 1.87 + wodim -v -blank=fast 1.88 } 1.89 1.90 gotisomd5() 1.91 { 1.92 [ "$(which md5sum 2> /dev/null)" ] && 1.93 - [ $(get 0 $ISO) -eq 23117 ] && 1.94 - [ $(get 18 $ISO) -ne 0 ] && menuitem "$@" 1.95 + [ $(get 0 "$ISO") -eq 23117 ] && 1.96 + [ $(get 18 "$ISO") -ne 0 ] && menuitem "$@" 1.97 } 1.98 1.99 isomd5() 1.100 { 1.101 dotwait "Checking iso image" 1.102 - [ "$(ddq if=$ISO bs=2k skip=16 \ 1.103 - count=$(echo $(get 32848 $ISO 4)) | md5sum)" == \ 1.104 - "$(ddq if=$ISO bs=16 count=1 skip=2047 | od -N 16 -t x1 -An | \ 1.105 + [ "$(ddq if="$ISO" bs=2k skip=16 \ 1.106 + count=$(echo $(get 32848 "$ISO" 4)) | md5sum)" == \ 1.107 + "$(ddq if="$ISO" bs=16 count=1 skip=2047 | od -N 16 -t x1 -An | \ 1.108 sed 's/ //g') -" ] && echo "OK" || echo "ERROR" 1.109 echo -en "\rChecking iso hybrid boot..." 1.110 - n=$(($(get 2 $ISO)-1+($(get 4 $ISO)-1)*512)) 1.111 + n=$(($(get 2 "$ISO")-1+($(get 4 "$ISO")-1)*512)) 1.112 if [ $n -lt 40000 -a $n -gt 32768 ]; then 1.113 - s=$(get 0 $ISO 2 $n | awk '{ i+= $0 } END { print i }') 1.114 - [ $(((1+$s+$(get $(($n+1)) $ISO 1)) % 65536)) -eq 0 ] && 1.115 + s=$(get 0 "$ISO" 2 $n | awk '{ i+= $0 } END { print i }') 1.116 + [ $(((1+$s+$(get $(($n+1)) "$ISO" 1)) % 65536)) -eq 0 ] && 1.117 echo "OK" || echo "ERROR" 1.118 fi 1.119 rm -f /tmp/wait 1.120 @@ -900,8 +921,8 @@ 1.121 usbdev || return 1.122 1.123 # perform dd in progress bar 1.124 - max=$(($(stat -c %s $ISO)/2048)) 1.125 - i=0; ddq if=$ISO bs=1024k | ( 1.126 + max=$(($(stat -c %s "$ISO")/2048)) 1.127 + i=0; ddq if="$ISO" bs=1024k | ( 1.128 while ddq bs=1024k count=1 ; do 1.129 i=$(($i + 1)) 1.130 [ $i -gt $max ] && break 1.131 @@ -971,7 +992,7 @@ 1.132 exec 3>&- 1.133 [ $retval -eq 0 ] || return 1.134 [ "$format" != "none" ] && tazusb format $device "SliTaz" $format 1.135 - tazusb gen-iso2usb $ISO $device 1.136 + tazusb gen-iso2usb "$ISO" $device 1.137 } 1.138 1.139 dokexec() 1.140 @@ -993,8 +1014,8 @@ 1.141 1.142 flavdata() 1.143 { 1.144 - [ $(get 512 $ISO) -eq 35615 ] && n=1 || n=$((1+$(get 417 $ISO 1))) 1.145 - dd if=$ISO bs=512 skip=$n count=20 2>/dev/null | zcat 2>/dev/null 1.146 + [ $(get 512 "$ISO") -eq 35615 ] && n=1 || n=$((1+$(get 417 "$ISO" 1))) 1.147 + dd if="$ISO" bs=512 skip=$n count=20 2>/dev/null | zcat 2>/dev/null 1.148 } 1.149 1.150 hasflavinfo() 1.151 @@ -1029,9 +1050,9 @@ 1.152 exit 1.153 } 1.154 1.155 -ISO="$1" 1.156 +ISO="${1:-/dev/null}" 1.157 [ -z "$(isiso 2> /dev/null)" ] && echo "Usage : $0 file.iso" && exit 1 1.158 -mount -o loop,ro $ISO /media/cdrom 1.159 +mount -o loop,ro "$ISO" /media/cdrom 1.160 1.161 if [ "$2" == "list" ]; then 1.162 sed '/^\$(.*") \\/!d;s/^\$(\(.*\)").*/\1"/' $0 | while read line; do 1.163 @@ -1061,6 +1082,8 @@ 1.164 $(cdfile 'md5sum*' "md5" "Check the ISO files") \ 1.165 $(cdfile 'sha*sum*' "sha" "Check the ISO files") \ 1.166 $(cdfilex boot/bzImage "bootiso" "Boot the ISO image") \ 1.167 +$(burnable "burniso" "Burn the ISO image") \ 1.168 +$(blankable "blankcd" "Blank the CD/DVD") \ 1.169 $(gotposixovl "install" "Hard disk installation (UMSDOS way)") \ 1.170 $(gotposixovl "installtaz" "Hard disk installation (TAZUSB way)") \ 1.171 $(gotposixovlzip "inst2zip" "ZIP installation archive (UMSDOS way)") \