view bin/lren @ 52:d07ce874a280

[bash] securing test. Should use bashism but I hate bashism.
author Edho Prima Arief <me@myconan.net>
date Wed, 27 Apr 2011 11:50:03 -0400
parents 94ee419ad047
children
line wrap: on
line source

#!/usr/bin/env perl

use warnings;
use strict;
use File::Basename;

my @files = @ARGV or print("Usage: ",basename($0)," file1 ... fileN\n") && exit(1);
my $skip=0;
foreach (@files) {
	my $newname = $_;
	print(qq(Could not find file "$_", skipping\n)) and next() unless -e $_;
  $newname =~ s/_/ /g;
  $newname =~ s/.* Ep([[:digit:]]+) .*/[Anime-Takeover] You're Under Arrest! - $1 [v2].mkv/;
	$newname =~ s/ +/ /g;
	print(qq($_: $newname already exists, skipping\n)) and next() if -e $newname and $_ ne $newname;
	if ($_ eq $newname) {
		print("$_: no need to rename, skipping\n");
	} else {
		if($skip==1) { print("Result: $_ --> $newname\n"); }
		else {
			if(rename($_, $newname)) { print("$_ -> $newname\n"); }
			else { print("$_: rename failed\n"); }
		}
	}
	next();
}

exit(0);