#!/usr/bin/perl -w # remd: version Perl du quoi "l'alias", j'ai décidé que tant que je ne saurai pas affiché * # simplement les commantaires que j'ajoute, au lieu de n'affiché que 4 lignes si le * # commentaire en fait 6 je me servirai de quoi+ qui est le quoi Perl (plus complet) * # Il accepte les arguments nom_de_fichier ou nom_de_repertoire auquel cas il cherchera * # dans tous les fichiers (sauf images et autres impossible way) de ce répértoire toutes * # les annotations que vous avez pu y placer. Il vous donnera ces annotations assorties de * # ces qualités date, heures (daccés, de modification, et de création) avec l'option -c * # Avec l'option -p il vous printera tous cela dans un fichier nomer quoi_filedir_date.log * # l'option -v vous donnera le numero de version. Actuellement 1.05 (mai 2003) * # Usage: quoi+ [-cp] [nom_de_fichier||nom_de_repertoire] * # par defaut il affiche toutes les annotations de tout les fichier du répértoire courrant * # exemple: quoi+ a # affichera les anotations de tout les fichier commencant par a * # écrit égalaement par moi même - Alain Adelmar ¤ #****************************************************************************************** use Cwd; $dir = cwd; $argm = $argf = 0; $argc = $argp = ""; $x ="#" . ("=" x 60); $y = "#" . ("-" x 10); if (defined $ARGV[0]) { foreach $_ (@ARGV) { if (/^-/) { $argc = "c" if /^-\w?c{1}/; $argp = "p" if /^-\w?p{1}/; print "quoi+ vers 1.05 made by Alain Adelmar\n" if /^-\w?v{1}/; } elsif (/^\.?\/\w/) { $filename = $_; $argf++; } else { $motif = $_; $argm++; } } &onyva; } else { print "Usage: quoi+ [-cpv] [nom_de_fichier || nom_de_repertoire] [ motif ]\nPar defaut quoi+ va contrôler tout les fichiers du repertoire courrant\n"; &here($dir); } my($u)= 0; sub here($dir) { opendir DIR, "$dir" or die "Ouverture du repertoire $dir impossible $!"; @lsdir = sort readdir (DIR); closedir DIR || die "fermeture de $dir impossible $!"; foreach $file (@lsdir) { next if ($file =~ /\.gif|\.jpg|\.bmp|\.exe|\.tix|\.tiff|\.wav|\.mid|\.pdf$/i); # peut etre en trop &cherche_quoi($file); } } sub onyva { # si je suis passé par argf if ($argf != 0) { # et que le répértoire existe if (-d $filename) { $dir = $filename; &here($dir); } else { if (-e $filename) { $file = $filename; &cherche_quoi($file); print "$x\n$file\n"; &quoi; } else { $motif = $filename; &here($dir); } } } else { &here($dir); } } sub spargc($file) { my($file)= @_; @st = stat($file); $atfs = $st[8]; $mtfs = $st[9]; $ctfs = $st[10]; # $atrgc = "dernier accés le " . localtime($atfs) . "\n"; # $mtrgc = "dernière modification effectuer le " . localtime($mtfs) . "\n"; # $ctrgc = "a été créé le " . localtime($ctfs) . "\n$y\n"; #-------------------------normal jj/mm/aa hh:mm:ss @ls_atfs = localtime($atfs); $lb = "Acces"; &convert_time(@ls_atfs, $lb); @ls_mtfs = localtime($mtfs); $lb = "Modif"; &convert_time(@ls_mtfs, $lb); @ls_ctfs = localtime($ctfs); $lb = "Change"; &convert_time(@ls_ctfs, $lb); $pt = join(" ", @ls_t); unlink @ls_t; @ls_t = ""; } sub quoi { if ($argc eq "c") { &spargc($file); $lbl = "$x\n$file $pt\n"; push @koi, $lbl; } else { $lbl = "$file\n"; push @koi, $lbl; } #----et le quoi proprement dit $u = 0; foreach $l(@contenu) { # zero avant, 1 pendant, 2aprés if ($u == 0) { if ($l =~ /remd:/) { # faire autrement une reconnaissance du signe de marquage style: if((.)remd:) {$marq=$1} if ($l =~ /¤$/) { &prems_ligne; $u++; } else { &prems_ligne; } } } elsif ($u == 1) { if($l =~ /^\#|¤$/) { push @koi, $l; print "$l\n"; } else { $u++; } } else { next; } } if($argp eq "p") { $kezac = "Kezac_" . $file . "\.log"; open K, "+>$kezac" or die "Crotte, impossible de créer $kezac $!"; @deja_ecris = ; $deja_ecris= join("\n", @deja_ecris); if (length $deja_ecris <= 2) { print K "@koi" . "\n"; } else { print K "\n$x\n" . "@koi" . "\n"; } close K || die "Ca c est pas glop\nImpossible de carouber $kezac $!"; unlink @koi; } } sub cherche_quoi($file) { if ($argm != 0) { if ($file =~ /^$motif/) { &openf; } } else { &openf; } } sub openf { open F, "$file" or die "ouverture de $file impossible $!"; @contenu = ; close F || die "Fermeture de $file impossible $!"; &quoi; } sub convert_time(@ls) { my(@ls)=@_; for (@ls) { if ($ls[5] <= 100) { $aa = "19" . $ls[5]; } else { $aa = "20" . ($ls[5]-100); } # mois idem localtime(x)[4] + 1 (because janvier = 0) if ($ls[4] <= 8) { $mm = "0" . ($ls[4] + 1); } else { $mm = ($ls[4] + 1); } # jour idem localtime(x)[3] + 1 (because le 1 démarre à 0) if ($ls[3] <= 8) { $jj = "0" . $ls[3]; } else { $jj = $ls[3]; } # les heures if ($ls[2]) { $hh = $ls[2]; } # les minutes if ($ls[1]) { $mn = $ls[1]; } # les secondes if ($ls[0]) { $ss = $ls[0]; } } $nt = "$lb $jj\/$mm\/$aa $hh:$mn:$ss "; push @ls_t, $nt; } sub prems_ligne { print "$lbl" . "$x\n"; push @koi, $l; print "$l"; $u++; } END;