Las pongo aquí con la esperanza de que me ayudéis a resolver un pequeño problema que indico en los comentarios del código (no sé cómo parar el script en caso de que la clave introducida sea errónea para evitar que borre los archivos), y de paso si alguien se apunta me encantaría ver como haríais vosotros esto mismo en Perl pero con mas estilo
Ahí va:
Using perl Syntax Highlighting
#!/usr/bin/perl
my $error = 1;
my $encript = "$ARGV[0].tar";
if (-d $ARGV[0]) {
system("tar -cvvf $encript $ARGV[0]") or ($error = 0); # El die aqui no me funcionaba asi que puse una bandera.
if($error =~ 0) {
system("gpg -ac --no-options $encript");
system("rm -r $ARGV[0]");
system("rm -r $encript");
} else {
print "Se ha abortado debido a un error.\n";
}
} else {
print "No es una carpeta!!!\n";
}
my $error = 1;
my $encript = "$ARGV[0].tar";
if (-d $ARGV[0]) {
system("tar -cvvf $encript $ARGV[0]") or ($error = 0); # El die aqui no me funcionaba asi que puse una bandera.
if($error =~ 0) {
system("gpg -ac --no-options $encript");
system("rm -r $ARGV[0]");
system("rm -r $encript");
} else {
print "Se ha abortado debido a un error.\n";
}
} else {
print "No es una carpeta!!!\n";
}
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
Y la función para desencriptar:
Using perl Syntax Highlighting
#!/usr/bin/perl
my $fix = $ARGV[0];
$fix =~ s/\W.+/.tar/g;
if($ARGV[0] =~ /tar/ && $ARGV[0] =~ /asc/) {
system("gpg --no-options $ARGV[0]") or ($error = 1); # ¿Como puedo detectar aqui si introduce la contraseña mal para parar el código?
system("tar -xvvf $fix");
system("rm $fix");
system("rm $ARGV[0]");
} else {
print "No es una carpeta encriptada válida.\n";
}
my $fix = $ARGV[0];
$fix =~ s/\W.+/.tar/g;
if($ARGV[0] =~ /tar/ && $ARGV[0] =~ /asc/) {
system("gpg --no-options $ARGV[0]") or ($error = 1); # ¿Como puedo detectar aqui si introduce la contraseña mal para parar el código?
system("tar -xvvf $fix");
system("rm $fix");
system("rm $ARGV[0]");
} else {
print "No es una carpeta encriptada válida.\n";
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Los scripts básicamente cogen el archivo, lo meten en un tar para poder cifrarlo con gpg, y eliminan tanto el archivo original como los creados durante el proceso a excepción del encriptado para dejar solo este último.
Ya sé que es una chapuza porque básicamente hice Bash en Perl para poder utilizar las expresiones regulares en Perl que se me dan mejor, por eso resultaría interesante que posteaseis alternativas a estos código (pero haciendo el mismo proceso que ellos en esencia).
Muchas gracias