#!/usr/bin/perl

use strict;
use warnings;

use Ernad::Dates;
use Date::Format;
use File::Copy;
use File::Basename;
use File::Path;

my $file = $ARGV[0] // die "I need a file";
## save the original value
my $in_file=$file;
if(not -f $file) {
  die "I can't seen the file $file";
}

my $date=&Ernad::Dates::mdate($file);

my $obs_dir;
my $copy;
my $bana;
## absolute file
if($file=~m|^/|) {
  $obs_dir=dirname($file).'/obsolete';
  if(not $obs_dir) {
    mkpath($obs_dir);
  }
  if($file=~m|(.+)\.([^.]+)$|) {
    my $name=$1;
    my $ext=$2;
    $copy=$obs_dir.'/'.$name.'_'.$date.".$ext";
  }
  else {
    $copy=$obs_dir.'/'.$file.'_'.$date;
  }
  ## for the rest, use the bana
  $bana=basename($file);
}
else {
  $obs_dir='obsolete';
  if(not -d $obs_dir) {
    $obs_dir="../$obs_dir";
    if(not -d $obs_dir) {
      $obs_dir="../$obs_dir";
      if(not -d $obs_dir) {
        $obs_dir="../$obs_dir";
      }
      if(not -d $obs_dir) {
        die "I can't find the obsolete directory.";
      }
    }
  }
}

if($bana=~m|(.+)\.([^.]+)$|) {
  my $name=$1;
  my $ext=$2;
    $copy=$obs_dir.'/'.$name.'_'.$date.".$ext";
}
else {
  $copy=$obs_dir.'/'.$bana.'_'.$date;
}



if(-f $copy and not -z $copy) {
    print "I found the copy $copy. I will leave it as it is.\n";
    exit;
}

print "I save '$file' as '$copy'.\n";
if(not -f $file) {
  die "I don't see $file";
}
copy($file,$copy);
if(-z $copy) {
  die "The copy of $file is empty!"
}
system("/usr/bin/touch -r $in_file $copy");
