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)") \