#!/usr/bin/perl -w                
# remd: petit script qui vide (par defaut) le contenu d'un fichier voulu *
# ou avec l'option -d l'efface carrement. Pour la version du scropt -v   *
# usage: vide [-dv] [filename]                                           *
# detail: un menu permet de réitérer l'opération ainsi que de récupérer  * 
# le fichier en cas d'erreur.    02 Juillet 2003 | Pessac                *
# Une fois récupérer les dates seront modifier (updater à maintenant)    *
#*************** tourne bien *********************************************
# écrit par alain Adelmar     aadelmar@free.fr           vers:1.02       *
#*************************************************************************
$x ="x*" x 25;

if(defined $ARGV[0]) {
  if ($ARGV[0] eq "-v") {
    print "\nvide vers: 1.02\n";
    exec 'quoi vide';
    die "$x\n";
  }
  elsif ($ARGV[0] =~ /^\"|\"$/) {
    s/^\"()\"$/$1/;
    $fav = $1;
  }
  else {
    $fav = $ARGV[0];
  }
  &vide_le;
}
else {
  print "\n$x\nVous auriez pu entrer directement le nom du fichier à vider en guise d'argument,\npensez y la prochaine fois.\n$x\n";
  &celui_la;
}

sub celui_la {
    print "$x\nEntrer le nom du fichier à vider\n";
    $fav = <STDIN>;
    chomp $fav;
    &vide_le;
  }



sub vide_le {

  while (!(-e $fav)) {
    print "Nom de fichier incorrect, entrer le nom complet du fichier a vider\n***** ";
    $fav = <STDIN>;
    chomp $fav;
  }
  
  
  open F, "< $fav" or die "Ouverture de $fav impossible $!";
  @contenu = <F>;
  close F or die "fermeture de $fav impossible $!";
  
  for $i(0..$#contenu) {
    $sav[$i] = shift(@contenu);
  }
  print @sav;
  open F, "> $fav" or die "Ouverture de $fav impossible $!";
  print F "";
  close F or die "fermeture de $fav impossible $!";
  print "$x\nle fichier $fav à été vider de son contenu, maintenant\n";
  &menu;
}


sub choix {
  
  $menu =~ tr/A-Z/a-z/;
  
  if ($menu =~ /^q/) {
    die "$x\nTchao\n$x\n $!";
  }
  elsif ($menu =~ /^r/) {
    print "$x\nLe contenu du fichier $fav lui a ete restitué, maintenant\nvoulez vous:\n - Continuer avec un autre: [Enter] (par defaut)\n - Quitter [q]\n\t";
    open FR, "> $fav" or die "Ouverture de $fav impossible $!";
    print FR @sav;
    close FR or die "fermeture de $fav impossible $!";
    chomp ($menu = <STDIN>);
    &choix;
  }
  else {
    &celui_la;
  }
}

sub menu {
  print "Voulez vous:\n - Continuer avec un autre: [Enter] (par defaut)\n - Quitter [q]\n - Récupérer $fav [R]\n\t";
  $menu = <STDIN>;
  chomp $menu;
  &choix;
}

# script Perl pour Unix-like si utilisé sur environement Windows remplacer la premiére ligne par:
#!perl -w

END;
