lilalo
diff l3-agent @ 80:d28dda8ea18f
1)
Изменён формат имени diff-файлов.
Теперь в имени присутствует только название сессии, время и имя файла.
2)
Можно просмотреть отдельную сессию.
Для этого нужно щёлкнуть по блоку сессии в журнале
3)
Исправлена ошибка с таблицей новых команд в последнем дне.
Раньше она просто не показывалась
4)
Запись lablog-ов теперь ведётся только для интерактивных shell'ов
Неинтерактивные работают как обычно.
Изменён формат имени diff-файлов.
Теперь в имени присутствует только название сессии, время и имя файла.
2)
Можно просмотреть отдельную сессию.
Для этого нужно щёлкнуть по блоку сессии в журнале
3)
Исправлена ошибка с таблицей новых команд в последнем дне.
Раньше она просто не показывалась
4)
Запись lablog-ов теперь ведётся только для интерактивных shell'ов
Неинтерактивные работают как обычно.
author | devi |
---|---|
date | Mon Feb 20 17:52:40 2006 +0200 (2006-02-20) |
parents | a10db759e587 |
children | d9a700d48bef |
line diff
1.1 --- a/l3-agent Thu Feb 09 18:47:04 2006 +0200 1.2 +++ b/l3-agent Mon Feb 20 17:52:40 2006 +0200 1.3 @@ -58,36 +58,36 @@ 1.4 for my $file (@files) { 1.5 1.6 next if defined($Diffs{$file}); 1.7 - 1.8 my %diff; 1.9 - 1.10 - $diff{"path"}=$path; 1.11 - $diff{"uid"}="SET THIS"; 1.12 1.13 -# Сейчас UID определяется из названия каталога 1.14 -# откуда берутся diff-файлы 1.15 -# Это неправильно 1.16 -# 1.17 -# ВАРИАНТ: 1.18 -# К файлам жураналам должны прилагаться ситемны файлы, 1.19 -# мз которых и будет определяться соответствие 1.20 -# имён пользователей их uid'ам 1.21 -# 1.22 - $diff{"uid"} = 0 if $path =~ m@/root/@; 1.23 - 1.24 - $diff{"bind_to"}=""; 1.25 - $diff{"time_range"}=-1; 1.26 - 1.27 - next if not $file=~m@/(D?[0-9][0-9]?[0-9]?)[^/]*?([0-9]*):([0-9]*):?([0-9]*)@; 1.28 - $diff{"day"}=$1 || ""; 1.29 - $diff{"hour"}=$2; 1.30 - $diff{"min"}=$3; 1.31 - $diff{"sec"}=$4 || 0; 1.32 - 1.33 - $diff{"index"}=$i; 1.34 +# Старый формат имени diff-файла 1.35 +# DEPRECATED 1.36 + if ($file=~m@/(D?[0-9][0-9]?[0-9]?)[^/]*?([0-9]*):([0-9]*):?([0-9]*)@) { 1.37 + $diff{"day"}=$1 || ""; 1.38 + $diff{"hour"}=$2; 1.39 + $diff{"min"}=$3; 1.40 + $diff{"sec"}=$4 || 0; 1.41 + 1.42 + $diff{"uid"} = 0 if $path =~ m@/root/@; 1.43 1.44 print "diff loaded: $diff{day} $diff{hour}:$diff{min}:$diff{sec}\n"; 1.45 - 1.46 + 1.47 + } 1.48 +# Новый формат имени diff-файла 1.49 + elsif ($file =~ m@.*/([^_]*)_([0-9]+)(.*)@) { 1.50 + $diff{"local_session_id"} = $1; 1.51 + $diff{"time"} = $2; 1.52 + $diff{"filename"} = $3; 1.53 + $diff{"filename"} =~ s@_@/@g; 1.54 + $diff{"filename"} =~ s@//@_@g; 1.55 + 1.56 + print "diff loaded: $diff{filename} (time=$diff{time},session=$diff{local_session_id})\n"; 1.57 + } 1.58 + else { 1.59 + next; 1.60 + } 1.61 + 1.62 +# Чтение и изменение кодировки содержимого diff-файла 1.63 local $/; 1.64 open (F, "$file") 1.65 or return "Can't open file $file ($_[0]) for reading"; 1.66 @@ -98,9 +98,12 @@ 1.67 } 1.68 close(F); 1.69 $diff{"text"}=$text; 1.70 - #print "$file loaded ($diff{day})\n"; 1.71 1.72 - #push @Diffs, \%diff; 1.73 + $diff{"path"}=$path; 1.74 + $diff{"bind_to"}=""; 1.75 + $diff{"time_range"}=-1; 1.76 + $diff{"index"}=$i; 1.77 + 1.78 $Diffs{$file} = \%diff; 1.79 $i++; 1.80 } 1.81 @@ -110,11 +113,6 @@ 1.82 1.83 sub bind_diff 1.84 { 1.85 -# my $path = shift; 1.86 -# my $pid = shift; 1.87 -# my $day = shift; 1.88 -# my $lab = shift; 1.89 - 1.90 print "Trying to bind diff...\n"; 1.91 1.92 my $cl = shift; 1.93 @@ -126,12 +124,24 @@ 1.94 1.95 for my $diff_key (keys %Diffs) { 1.96 my $diff = $Diffs{$diff_key}; 1.97 - # Check here date, time and user 1.98 + next if ($diff->{"local_session_id"} 1.99 + && $cl->{"local_session_id"} 1.100 + && ($cl->{"local_session_id"} ne $diff->{"local_session_id"})); 1.101 + print "diff of my session found\n"; 1.102 + 1.103 next if ($diff->{"day"} && $cl->{"day"} && ($cl->{"day"} ne $diff->{"day"})); 1.104 - #next if (!$diff->{"uid"} && $cl->{"euid"} != $diff->{"uid"}); 1.105 - 1.106 - my $dt=($diff->{"hour"}-$hour)*3600 +($diff->{"min"}-$min)*60 + ($diff->{"sec"}-$sec); 1.107 - if ($dt >0 && $dt < $min_dt && ($diff->{"time_range"} <0 || $dt < $diff->{"time_range"})) { 1.108 + 1.109 + my $dt; 1.110 + if ($diff->{"time"} && $cl->{"time"}) { 1.111 + $dt = $diff->{"time"} - $cl->{"time"} 1.112 + } 1.113 + else { 1.114 + $dt=($diff->{"hour"}-$hour)*3600 +($diff->{"min"}-$min)*60 + ($diff->{"sec"}-$sec); 1.115 + } 1.116 + if ($dt >0 1.117 + && $dt < $min_dt 1.118 + && ($diff->{"time_range"} <0 1.119 + || $dt < $diff->{"time_range"})) { 1.120 print "Approppriate diff found: dt=$dt\n"; 1.121 if ($diff->{"bind_to"}) { 1.122 undef $diff->{"bind_to"}->{"diff"}; 1.123 @@ -141,7 +151,7 @@ 1.124 1.125 $cl->{"diff"} = $diff_key; 1.126 $min_dt = $dt; 1.127 - } 1.128 + } 1.129 } 1.130 } 1.131 1.132 @@ -281,7 +291,7 @@ 1.133 1.134 $file =~ m@.*/(.*?)-.*@; 1.135 1.136 - print "+- processing file $file\n" if $Config{"verbose"} =~/y/; 1.137 + print "\n+- processing file $file\n" if $Config{"verbose"} =~/y/; 1.138 1.139 my $tty = $1; 1.140 my $first_pass = 1;