Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
#!/bin/sh
# write-cd 1.0.1
VER=1.0.1
DEV=/dev/hdc
WRITESPEED=4
LABEL=DATA_$(date +%y%m%d)
STATTMP=/tmp/write-cd-$(id -un).stat
TMPIMGDIR=/tmp
SAVE_TMPIMG=no
function help () {
cat <
-v become a bit verbose
-e only erase media (requires no as no writes done)
-h show this help
directory where source files reside
EOM
exit 0
}
function tocstat () {
# returns codes; Blank-R/RW=0, Written-R/RW-or-Non-writable=1,
# No-media-in-drive=2, Drive-not-usable=3
cdrecord dev=$DEV -toc >$STATTMP 2>&1
STAT=$(tail -n 1 $STATTMP)
if [ ! -z "$(echo $STAT |grep -Ei 'Cannot +load +media')" ]; then
return 2
elif [ ! -z "$(echo $STAT |grep -Ei 'Cannot +read +TOC.*')" ]; then
return 0
elif [ ! -z "$(echo $STAT |grep -Ei 'No +disk')" ]; then
return 3
else
return 1
fi
}
function erase_cd () {
[ "$DEBUG" = "1" ] && echo Erasing media........
cdrecord dev=$DEV speed=$WRITESPEED -blank=fast &>/dev/null
return $?
}
for i; do
case $i in
-v) DEBUG=1;;
-e) ERASEONLY=1;;
-h) help;;
-*) help;;
*) SRC=$i;;
esac
done
if [ -z "$SRC" -a -z "$ERASEONLY" ]; then
echo No Source directory specified. Try \`-h\'
exit 1
fi
cdrecord dev=$DEV -load &>/dev/null
tocstat
STAT=$?
rm -f $STATTMP
case $STAT in
0) ;;
1) ;;
*)
echo Media not writable
exit 1
;;
esac
if [ $STAT -eq 1 ]; then
erase_cd
if [ $? -ne 0 ]; then
echo This may not be a Rewritable media
exit 1
fi
elif [ ! -z "$DEBUG" ]; then
echo No erasion required
fi
[ -z "$ERASEONLY" ] || exit 0
TMPIMAGE=$TMPIMGDIR/${LABEL}_$(id -un).iso
[ "$DEBUG" = "1" ] && echo Making tmp ISO $TMPIMAGE........
mkisofs -R -V $LABEL -o $TMPIMAGE $SRC &>/dev/null
if [ $? -ne 0 -o ! -f $TMPIMAGE ]; then
echo ISO preparation failed
rm -f $TMPIMAGE
exit 1
fi
[ "$DEBUG" = "1" ] && echo Writing to media........
cdrecord dev=$DEV speed=$WRITESPEED $TMPIMAGE &>/dev/null
STAT=$?
[ $STAT -ne 0 ] && echo Media write failed
[ "${SAVE_TMPIMG}" = "1" -o "${SAVE_TMPIMG}" = "yes" ] || rm -f $TMPIMAGE
[ $STAT -eq 0 -a "$DEBUG" = "1" ] && echo Done!
exit $STAT