#!/usr/bin/perl

# timestamp-rename
# by Jon Jensen <jon@swelter.net>
# 2004-09-13

# Renames files to match their last-modified timestamp.

use warnings;
use strict;

for (@ARGV) {
	(my $ext = $_) =~ s/.*\.//;
	my ($Y, $m, $d, $H, $M, $S) = (localtime((stat)[9]))[5,4,3,2,1,0];
	$Y += 1900;
	++$m;
	$_ = sprintf('%02u', $_) for ($m, $d, $H, $M, $S);
	my $this = "$Y$m$d-$H$M$S";
	my $file;
	my $n = 0;
	while (1) {
		$file = $this;
		$file .= '.' . $n if $n > 0;
		$file .= '.' . $ext if $ext;
		last unless -f $file;
		++$n;
	}
	print "$_ -> $file\n";
	rename $_, $file or die "Error: $!\n";
}
