#!/usr/bin/perl -w

#=======================================================
# quemarcd.pl - grabar CD y DVD con genisoimage y wodim
#-------------------------------------------------------
# FJA - neocipres@telefonica.net, Noviembre de 2007 
#======================================================= 

use strict;

my $tamCD = 0;
my $linea = "";
my $flag = "";
my $valor = "";
my $tmp = "";
my $le = "";


sub raya {
  print "\n#";
  print "=" x 78 . "#\n\n";
}

if ($#ARGV == 0) {
	if ($ARGV[0] eq "-b") {
		
		raya;
  		print "wodim -v -eject speed=4 -tao -blank=fast -force dev=/dev/sr0 \n\n";
  		system("wodim -v -eject speed=4 -tao -blank=fast -force dev=/dev/sr0"); 
		raya;
		exit;
	}
	if ($ARGV[0] eq "-i") {

		print "\nwodim --devices \n\n";
		system("wodim --devices");		
		print "\nwodim dev=/dev/sr0 -atip \n\n";
		my @infCD =  `wodim dev=/dev/sr0 -atip`;
		raya;
		foreach $linea (@infCD){
			print $linea;
			if ($linea =~/\bATIP start of lead out:/){
				$le = $linea;
				my $posP = index($le, ":");
				my $posU = rindex($le, " ");
				$tamCD = substr($le,$posP+1,$posU-$posP);
				$tamCD = int(($tamCD*2048)/(1024*1024));
			}
		}
		raya;
		print $le, "\n";
		print "\  La capacidad del CD es de: $tamCD MBytes \n";
		raya;
		exit;
	}
}	
if ($#ARGV < 1) {
  system("clear");
  raya;
  print "\  Uso:".
        "\n\t quemarcd -d <lista de directorios>\n" . 
	"\n\t quemarcd -o <imagen.iso>\n" . 
	"\n\t quemarcd -b <-> borrado rapido de un CD-RW\n" .
	"\n\t quemarcd -i <-> informacion del CD\n\a";
  raya;
} else {
  	
  $flag = shift();
  $valor = shift();
  raya;
  if ($flag eq "-d") {
    while ($tmp = shift()) {
      $valor = $valor . " $tmp";
    }
    print "genisoimage -R -hide-rr-moved -J -o imagenCD.iso $valor \n\n";
    system("genisoimage -R -hide-rr-moved -J -o imagenCD.iso $valor"); 
    print "\n Creada la imagen de CD como imagenCD.iso \n\n";
    print "Preparado para quemar CD $valor... (s/n):";
    my $resp = <STDIN>;
    chop($resp);
    if ($resp eq "s") {
     print "wodim -v -eject dev=/dev/sr0 -data imagenCD.iso \n\n";
     system("wodim -v -eject dev=/dev/sr0 -data imagenCD.iso");
    }
    
  } elsif ($flag eq "-o") {
    print "Preparado para quemar CD $valor...\n\n";
    print "wodim -v -eject dev=/dev/sr0 -data $valor \n\n";
    system("wodim -v -eject dev=/dev/sr0 -data $valor");
  } else {
    print "Error: $flag -> opcion invalida! Abortando...\n\n";
    exit(0);
  }
  print "\n\n Terminando con la tarea\n";
  raya;
}
