#!/bin/sh # # Autor Thorsten Gunkel # # Empty String? is_empty() { if [ "X$1" = "X" ]; then true; else false; fi; } # Not a empty String? not_empty() { is_empty "$1" fehler=$?; if [ $fehler -eq 0 ]; then false; else true; fi } check_2_paramter() { is_empty "$1" fehler=$?; if [ $fehler -eq 0 ]; then echo "Fehler: Der 2. Paramter fehlt." exit 1 fi } # get -V get_name() { read cdname; not_empty "$cdname" && echo "-V\"$cdname\""; } # MAIN # Read config file . /etc/tg-cdburn.conf is_empty "$cdrecord" && cdrecord="`which cdrecord` -v" is_empty "$cdrecord" && cdrecord="/usr/bin/cdrecord" is_empty "$brenner_dev" && brenner_dev="$CDR_DEVICE"; is_empty "$brenner_dev" && { echo "No device specified. check tg-cdburn.conf (5)"; exit 1; } is_empty "$brenner_speed" && brenner_speed="$CDR_SPEED"; is_empty "$brenner_speed" && brenner_speed="1"; is_empty "$cdrom_dev" && cdrom_dev="/dev/cdrom"; cdrecord="$cdrecord -speed=\"$brenner_speed\" -dev=\"$brenner_dev\"" param1="$1" param2="$2" case "$param1" in blank_fast) echo "Schnelllöschung" cmd="$cdrecord -blank fast" ;; blank_all) echo "Komplettlöschung" cmd="$cdrecord -blank all" ;; blank_force) echo "Erzwungene Komplettlöschung" cmd="$cdrecord -blank all -force" ;; data) check_2_paramter "$param2" echo "Folgende(r) Ordner/Datei soll auf CD gebrannt werden: $param2" echo "Namen für die CD eingeben. Vorschläge:" echo "`date +%Y%m%d`" echo "$param2" | sed s/"\/"$// | sed s/".*\/"// | sed s/"\..*"// # Berechnet Größe des Images tsize=`/usr/bin/mkisofs -f -print-size "$param2" 2>&1 | tail -n1 | awk '{print $NF}'`s echo -n "Ihre Wahl: " cmd="/usr/bin/mkisofs -l -J -allow-leading-dots -nobak -r `get_name` \"$param2\" | $cdrecord -pad -dao -tsize=\"$tsize\" -" ;; dvddata) check_2_paramter "$param2" echo "Folgende(r) Ordner/Datei soll auf DVD gebrannt werden: $param2" echo "Namen für die DVD eingeben. Vorschläge:" echo "`date +%Y%m%d`" echo "$param2" | sed s/"\/"$// | sed s/".*\/"// | sed s/"\..*"// echo -n "Ihre Wahl: " cmd="$growisofs -Z \"$brenner_dev\" -l -J -allow-leading-dots -nobak -r `get_name` \"$param2\"" ;; dvddata_second) check_2_paramter "$param2" echo "Folgende(r) Ordner/Datei sollen zusätzlich auf DVD gebrannt werden: $param2" cmd="$growisofs -M \"$brenner_dev\" -l -J -allow-leading-dots -nobak \"$param2\"" ;; multi_first) check_2_paramter "$param2" echo "Folgeder Ordner/Datei soll gebrannt werden: $param2" echo "Namen für die CD eingeben. Vorschläge:" echo "`date +%Y%m%d`" echo "$param2" | sed s/"\/"$// | sed s/".*\/"// | sed s/"\..*"// echo -n "Ihre Wahl: " # Berechnet Größe des Images tsize=`/usr/bin/mkisofs -f -print-size "$param2" 2>&1 | tail -n1 | awk '{print $NF}'`s cmd="/usr/bin/mkisofs -l -J -L -R -nobak -r `get_name` \"$param2\" | $cdrecord -pad -tsize=\"$tsize\" -multi -" ;; multi_non_first) check_2_paramter "$param2" echo "Folgeder Ordner/Datei soll hinzugefuegt werden: $param2" # Berechnet Größe des Images tsize=`/usr/bin/mkisofs -f -print-size "$param2" 2>&1 | tail -n1 | awk '{print $NF}'`s # Berechnet Sektoren fuer Multisession msinf=`/usr/bin/sudo /usr/bin/cdrecord -msinfo -dev $brenner_dev` cmd="/usr/bin/mkisofs -l -J -L -R -nobak -r -M $brenner_dev -C $msinf \"$param2\" | $cdrecord -pad -tsize=\"$tsize\" -multi -" ;; read2img) echo "CD/DVD auslesen und in Image speichern" cmd="dd if=\"$cdrom_dev\" of=$param2" ;; image) check_2_paramter "$param2" echo "Folgendes Image auf CD brennen: $param2" cmd="$cdrecord -pad -dao $param2" ;; dvdimage) check_2_paramter "$param2" echo "Folgendes Image soll auf DVD gebrannt werden: $param2" cmd="$growisofs -dvd-compat -Z \"$brenner_dev=$param2\"" ;; copy) echo "Daten CD ~ 1:1 kopieren" cmd="$cdrecord -pad -dao -isosize \"$cdrom_dev\"" ;; dvdcopy) echo "Daten DVD ~ 1:1 kopieren" cmd="$growisofs -dvd-compat -Z \"$brenner_dev=$cdrom_dev\"" ;; audio) check_2_paramter "$param2" echo "Folgede Dateien werden auf CD gebrannt:" file "$param2/"*.wav echo RETURN zum bestätigen, CTRL C zum abbrechen read nix cmd="$cdrecord -pad -audio \"$param2/\"*.wav" ;; *) echo echo "Missing Parameter. Try one of these:" echo "blank_fast" echo "blank_all" echo "blank_force" echo "data NAME" echo "dvddata NAME" echo "dvdimage NAME" echo "multi_first NAME" echo "multi_non_first NAME" echo "dvddata_second NAME" echo "audio NAME" echo "read2img NAME" echo "image NAME" echo "copy" echo "dvdcopy" echo echo "ERROR -> Exit" exit 1 ;; esac echo "$cmd" echo eval "$cmd"