#!/usr/bin/perl -w 
# usage : perl save files

use strict; 
use File::Basename; 

#my $input_file = $ARGV[0]; 
my $URLs                = $ARGV[0]; 
my $username            = $ARGV[1]; 
my $repertoire          = $ARGV[2]; 
my $newFileName         = $ARGV[3]; 
my $out                 = $ARGV[4]; 
my $output_Galaxy       = $ARGV[5];
my $output_final_Galaxy = $ARGV[6];

my $cmd = ''; 
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); 
my $ALL =  $mday."-".($mon+1)."_".$hour."h".$min."mn".$sec; 

#my $file=dirname($input_file); 

#my $dataset_number =  substr $input_file, index($input_file, 'dataset');

#Dans le cas où le fichier est récupéré dans l'historique
#if (! -e "$input_file") 
#else { 
#	`mkdir /work/$username/galaxy/$repertoire/`; 
#	`cp -a $input_file /work/$username/galaxy/$repertoire/.`;
#	`mv /work/$username/galaxy/$repertoire/$dataset_number /work/$username/galaxy/$repertoire/$newFileName`;
#	`chmod a+w /work/$username/galaxy/$repertoire/$newFileName`;
#	`chmod a+w /work/$username/galaxy/$repertoire/`;
#
#	#Fournir la ligne de commande au biologiste via le stdout
#	print STDOUT "La commande executee est : \n\n mkdir /work/$username/galaxy/$repertoire/ \n\n cp -a $input_file /work/$username/galaxy/$repertoire/.\n\n mv /work/$username/galaxy/$repertoire/$dataset_number $newFileName";
#
#	#creation d'un fichier html
#	open (HTML, ">", "results.html") or die "Cannot create results.html";
#	print HTML ("<br><br><br><br><br><br>");
#	print HTML "Bonjour $username,";
#	print HTML ("<br><br>");
#	print HTML "Vous avez créé un répertoire $repertoire dans votre répertoire galaxy/ présent par défaut dans votre work : /work/$username/galaxy/ (avec la commande /work/$username/galaxy/$repertoire/).\n";
#	print HTML ("<br><br>");
#	print HTML "Puis vous avez copié le fichier que vous souhaitiez sauvegarder dans ce répertoire nouvellement créé (avec la commande cp -a $input_file /work/$username/galaxy/$repertoire/.)\n";
#	print HTML ("<br><br>");
#	print HTML "Enfin, vous avez renommé ce dataset $dataset_number en $newFileName (avec la commande (mv /work/$username/galaxy/$repertoire/$dataset_number /work/$username/galaxy/$repertoire/$newFileName).\n";
#	print HTML ("<br><br>");
#	print HTML "Votre dataset $newFileName est donc ainsi sauvegardé dans votre /work/$username/galaxy/$repertoire/\n";
#	print HTML ("<br><br>");
#
#	if (! -e "results.html"){print STDERR "Pas de fichier html produit \n";}
#	else {$cmd = "(mv results.html $out) >& ./cp_out_save.log 2>&1";
#	system $cmd;}
#	close( HTML ); 
#} 



#Dans le cas où le fichier est recupere via une adresse URL
#if (! -e "$URLs") {print STDERR "Pas d'URL fournie \n";}
#else { 
if (! -e "/work/$username/galaxy/$repertoire/"){`mkdir /work/$username/galaxy/$repertoire/`;} 
$cmd = "(cd /work/$username/galaxy/$repertoire/; chmod a+w /work/$username/galaxy/$repertoire/; wget \"$URLs\" -O $newFileName; chmod a+w /work/$username/galaxy/$repertoire/$newFileName;ln -s /work/$username/galaxy/$repertoire/$newFileName $output_Galaxy) >& ./cp1_out_save.log 2>&1";
system $cmd;
print STDOUT $cmd;
	#`cd /work/$username/galaxy/$repertoire/`;
	#`chmod a+w /work/$username/galaxy/$repertoire/`;
	#`wget $URLs -O $newFileName`;
	#`chmod a+w /work/$username/galaxy/$repertoire/$newFileName`;
	#creation d un lien symbolique du /work de l utilisateur au work de Galaxy
	#`ln -s /work/$username/galaxy/$repertoire/$newFileName $output_Galaxy`;
		if (! -e "$output_Galaxy"){print STDERR "Pas de fichier output produit \n";}
		else {$cmd = "(mv $output_Galaxy $output_final_Galaxy) >& ./cp_output_save.log 2>&1";}
#}
	#Fournir la ligne de commande au biologiste via le stdout : inutile car tout est expliqué dans le fichier html produit.

	#creation d'un fichier html
	open (HTML, ">", "results.html") or die "Cannot create results.html";
	print HTML ("<br><br><br><br><br><br>");
	print HTML "Bonjour $username,";
	print HTML ("<br><br>");
	print HTML "Vous avez créé un répertoire $repertoire dans votre répertoire galaxy/ présent par défaut dans votre work : /work/$username/galaxy/ (avec la commande mkdir /work/$username/galaxy/$repertoire/).\n";
	print HTML ("<br><br>");
	print HTML "Puis vous avez donné les droit d'exécution sur le répertoire nouvellement créé $repertoire avant de récupérer le fichier $newFileName via l'URL grâce à une commande wget (avec la commande wget $URLs -O $newFileName)\n";
	print HTML ("<br><br>");
	print HTML "Enfin, vous avez créé un lien symbolique depuis votre /work/$username/ vers le /work de galaxy (avec la commande ln -s /work/$username/galaxy/$repertoire/$newFileName $output_Galaxy \n";
	print HTML ("<br><br>");
	print HTML "Pour récupérer votre fichier dans Galaxy depuis votre /work, le chemin est : /work/$username/galaxy/$repertoire/$newFileName \n";
	print HTML ("<br><br>");


	if (! -e "results.html"){print STDERR "Pas de fichier html produit \n";}
	else {$cmd = "(mv results.html $out) >& ./cp2_out_save.log 2>&1";
	system $cmd;}
	close( HTML );
