#!/usr/bin/perl # remd: Mon editeur alEd avec un menu. (ce programme tourne a merveille) * # Il accepte les noms de fichiers en arguments et s'utilise depuis le shell * # alain adelmar vers: 1.03 Novembre 2002 (fonctionne trop bien) * #********************************************************************** $dt = localtime(time); $fdt = time(); if($ARGV[0] ne "") { if ($ARGV[0] =~ /^\"|\"$/) { s/^\"()\"$/$1/; $nbase = $1; print $nbase; } $filename = $ARGV[0]; $argv = 1; &ouvrir; } else { print "\nVous auriez pu entrer un nom de fichier comme argument,\npensez y la prochaine fois.\n"; $argv = 0; } # les différantes variables *************** $x = "x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*x*\n"; $bienvenu = "$x$dt\tx*x\n$x\nBienvenu sur l'éditeur aled\n editeur alain A_d_e_l_m_a_r\nTaper Ctr-D pour sortir\n\n$x\n\n"; $prompt = "Entrer KK votre choix: (0)nouveau, (1)ouvrir, (2)sauvegarder\n(q)quitter ou (Enter) pour continuez...\n"; # initialisé à $choix = 0; $travail = 0; print "$prompt"; chomp($choix = ); &choix; sub choix { while($choix ne "q") { chop($choix); if($choix eq "0") { &nouveau; print "$prompt"; $choix = ; } if($choix eq "1") { if ($travail >= 1) { &eb_sauve_alors; } else { &ouvrir; } } elsif($choix eq "2"){ &sauv; } else { if ($travail >= 1) { &eb_sauve_alors; } else { &nouveau; } } } die "$x\nTchao !!! s'eut été un plaisir\n$x\n"; } sub nouveau { print "$bienvenu"; $travail++; @contenu = ; print "n'oublier pas de sauver votre travail qui par defaut sera sauvegarder sur votre repertoire avec pour nom 'edition_date_du_jour.log'\n"; $filetmp = "trav_" . "$fdt" . "\.log"; open FTMP, ">$filetmp" or die "Ouverture impossible $!"; print "$x\nEdite automatiquement par alEd le: $dt --\>\n$x\n\n"; print FTMP @contenu; close FTMP or die "fermeture a l'os gros_caca $!"; } sub ouvrir { if ($argv == 0) { &lequel($filename); } if(-e $filename) { print "alEd va ouvrir $filename pour vous\n"; } else { print "veuillez enrer un nom de fichier correct, (svp)\n"; $filename = ; chomp $filename; } open FO, "$filename" or die "Ouverture impossible $!"; @contenu = ; $ajout = "\n#== ajout éffectué par alEd le :$dt ==\>\n\n"; push @contenu, $ajout; close FO or die "fermeture impossible $!"; # voir si il est possible de directement ecrire print @contenu foreach $ligne(@contenu) { print $ligne; } print "\n"; print $bienvenu; @nwcontenu = ; if ($argv == 1) { print "voulez vous sauver l\'ensemble du travail sur le fichier d\'origine $filename :\[Oui-Non]?\n"; chomp($respond = ); if($respond =~ /^o|oui/i) { push @contenu, @nwcontenu; open FO, ">$filename" or die "Ouverture impossible $!"; print FO @contenu; close FO or die "fermeture impossible $!"; print "$prompt"; chomp($choix = ); &choix; } else { print "n'oublier pas de sauver votre travail\nqui par defaut sera sauvegarder\nsur votre repertoire avec pour nom:\n'edition_date_du_jour.log'\n"; $filetmp = "trav_" . "$fdt" . "\.log"; push @contenu, "@nwcontenu"; open FTMP, ">$filetmp" or die "Ouverture impossible $!"; print "$x\nEdite automatiquement par alEd le: $dt --\>\n$x\n\n"; print FTMP @contenu; close FTMP or die "fermeture a l'os gros_caca $!"; $travail++; print "$prompt"; chomp($choix = ); } } } sub sauv { exec '/usr/bin/clear'; print "\nentrez le nom de votre travail\n"; print "\n" . @contenu . "\nPour ce travail\nnom du fichier:\t"; $filename = ; chomp $filename; # controler si un fichier n'a pas le meme nom if (-e $filename) { ($file, $ext)= split(/./, $filename); $new_filename = "$file" . "_$fdt" . "\.$ext"; print "Votre travail sera sauvegarder sous $new_filename\n"; open(F, ">$new_filename") or die "Ouverture impossible $!"; print "$x\nEdite automatiquement par alEd le: $dt --\>\n$x\n\n"; print F @contenu; close F || die "fermeture impossible $!"; $travail--; print "$prompt"; $choix = ; } else { print "Votre travail sera sauvegarder sous $new_filename\n"; open(F, ">$filename") or die "Ouverture impossible $!"; print F "$x\nEdite automatiquement par alEd le: $dt --\>\n$x\n\n"; print F @contenu; close F || die "fermeture impossible $!"; $travail--; } } sub lequel($filename) { print "Quel fichier desirez vous ouvrir:\n"; $filename = ; chomp $filename; } sub eb_sauve_alors { print "Sauvegarder votre travail d'abord\n"; &sauv; } # Ce petit programme est une petite merveille # alain Adelmar, 14 Aout 2001, rectifier Nov 2002 a.adelmar@wanadoo.fr exec '/usr/bin/clear'; # remet une page blanche au shell. END;