[Fai-commit] r4639 - people/eartoast/addons/class-reference
glaweh-guest at alioth.debian.org
glaweh-guest at alioth.debian.org
Fri Oct 19 14:24:44 UTC 2007
Author: glaweh-guest
Date: 2007-10-19 14:24:43 +0000 (Fri, 19 Oct 2007)
New Revision: 4639
Added:
people/eartoast/addons/class-reference/fai-classes-merge
Log:
merge the 'last-seen' data from log and the class
reference from config into a class-by-last-seen list (files
depending on that class included)
shortly speaking: you easily find unused data in your configspace...
Added: people/eartoast/addons/class-reference/fai-classes-merge
===================================================================
--- people/eartoast/addons/class-reference/fai-classes-merge (rev 0)
+++ people/eartoast/addons/class-reference/fai-classes-merge 2007-10-19 14:24:43 UTC (rev 4639)
@@ -0,0 +1,111 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+use File::Basename;
+use Getopt::Std;
+
+my %classes_log;
+my %classes_config;
+our ($opt_u,$opt_a);
+
+my $print_unused;
+
+sub read_log {
+ my $fname=shift;
+ my $fh;
+ open $fh,$fname;
+
+ while (<$fh>) {
+ s/#.*$//;
+ chomp;
+ next if m#^$#;
+ my ($last_seen,$class) = split;
+ $classes_log{$class} = $last_seen;
+ }
+
+ close $fname;
+}
+
+sub read_config {
+ my $fname=shift;
+ my $fh;
+ open $fh,$fname;
+ my $class;
+ my @accum;
+
+ while (<$fh>) {
+ s/#.*$//;
+ chomp;
+ next if m#^$#;
+
+ if (m#^class: (.*)$#) {
+ if ($class) {
+ @{$classes_config{$class}}=@accum;
+ @accum=();
+ }
+ $class=$1;
+ } else {
+ s#\s##g;
+ push @accum,$_;
+ }
+ }
+
+ close $fname;
+
+ if ($class) {
+ @{$classes_config{$class}}=@accum;
+ }
+}
+
+sub print_config_alpha {
+ my %seen_class;
+ foreach my $class (sort keys %classes_config) {
+ $seen_class{$class}=1;
+ my $date=$classes_log{$class} || 'never';
+ print "class: $class $date\n";
+ foreach my $file (sort @{$classes_config{$class}}) {
+ print " $file\n";
+ }
+ }
+ if ($print_unused) {
+ my @unused = grep { ! defined($seen_class{$_}) } sort keys %classes_log;
+ if (@unused) {
+ print "classes without config files:\n";
+ foreach (@unused) {
+ print " $_ " . $classes_log{$_} . "\n";
+ }
+ }
+ }
+}
+
+sub print_config_time {
+ my %fakelog=%classes_log;
+ foreach my $class (keys %classes_config) {
+ $fakelog{$class}='00000000' unless (exists($fakelog{$class}));
+ }
+ my @bytime = sort map { $_=$fakelog{$_} . " $_" } keys %fakelog;
+ foreach (@bytime) {
+ m#(\d+) (.*)$#;
+ my $date=$1;
+ my $class=$2;
+ print "class: $class $date\n" if (exists($classes_config{$class}) || $print_unused);
+ if (exists($classes_config{$class})) {
+ foreach my $file (sort @{$classes_config{$class}}) {
+ print " $file\n";
+ }
+ }
+ }
+}
+getopts("ua");
+$print_unused=$opt_u;
+
+die "Usage: " . basename($0) . " <zedv_fai-classes-config.txt> <zedv_fai-classes-log.txt>\n" if ($#ARGV<1);
+
+read_config($ARGV[0]);
+read_log($ARGV[1]);
+
+if ($opt_a) {
+ print_config_alpha();
+} else {
+ print_config_time();
+}
Property changes on: people/eartoast/addons/class-reference/fai-classes-merge
___________________________________________________________________
Name: svn:executable
+ *
More information about the Fai-commit
mailing list