--- Emerge-Progress_0.1.perl 2005-04-12 14:23:01.000000000 +0200 +++ Emerge-Progress_0.1.1.perl 2005-04-13 16:03:05.000000000 +0200 @@ -4,21 +4,9 @@ use Gtk2 '-init'; use Gtk2::Helper; use strict; -#use warnings; use FileHandle; -#use Test::More; # for debugging purposes use Data::Dumper; # for debugging purposes -#if( Gtk2->init_check ) -#{ -# plan tests => 3; -#} -#else -#{ -# plan skip_all => -# 'Gtk2->init_check failed, probably unable to open DISPLAY'; -#} - #Definering av ting.. my $logfile = "/var/log/emerge.log"; @@ -26,7 +14,6 @@ my $lastline; my $status; my $tag; -# my $erkjort = 0; my @cols = ( { title => 'Name', type => 'Glib::String', }, { title => 'Date', type => 'Glib::String', }, @@ -64,25 +51,20 @@ sub sett_opp { -# print 'sett_opp ble kjørt',"\n"; $sw->add($treeview); $vbox->pack_start($sw,1,1,0); $vbox->pack_end($buttonbox,0,0,0); $window->show_all; &sett_opp_kolonner; &parselog("emerge"); -# &sett_opp_kolonner; -# &sett_opp_store; my $timer = Glib::Timeout->add(10000, &test); &test; } sub sett_opp_kolonner { -# print 'sett_opp_kolonner ble kjørt',"\n"; my $renderer; my $i = 0; -# ok( @cols ); foreach (@cols) { $renderer = Gtk2::CellRendererText->new; @@ -100,59 +82,14 @@ return 1; } -#sub sett_opp_store -#{ -# print 'sett_opp_store blir kjørt',"\n"; -# my $i = 0; -# ok( @package_list ); -# while($i < scalar(@package_list)) -# { -# my $time = sprintf("%d",$package_list[$i]); -# $time = gmtime($time); -# my $package = $package_list[$i + 2]; -# print 'Sjekker $package : '; -# print $package,"\n"; -# ok( $package ); -# my @data=( -# { Name => "$package", Time => "$time", Status => 'unknown' } -# ); -# print '@data skal nå inneholde ',"$package_list[$i + 2] , $time , pluss Status = unknown..","\n"; -# $i++; -# $i++; -# $i++; -# ok( @data ); -# foreach(@data) -# { -# my $iter = $store->append; -# $store->set($iter, -# 0, $_->{'Name'}, -# 1, $_->{'Time'}, -# 2, $_->{'Status'} -# ); -# } -# } -# print 'Store ble kjørt',"\n"; -# return 1; -#} - sub parselog { -# print 'parselog ble kjørt'; -# if($_[0]) -# { -# print ' med parameter : ',$_[0],"\n"; -# } my $fh = FileHandle->new; -# print 'Sjekker $fh...',"\n"; -# ok( $fh ); $lastline = `tail -n1 $logfile`; chomp($lastline); -# print 'Sjekker $lastline...',"\n"; -# ok( $lastline ); if($_[0] eq 'emerge') { open($fh, q^tail -n100 "/var/log/emerge.log" | grep ">>> emerge"|^) or &error; - } $tag = Gtk2::Helper->add_watch ( $fh->fileno, 'in', sub @@ -164,15 +101,12 @@ sub watcher_callback { -# print 'watcher_callback ble kjørt',"\n"; my ( $fh, $tag) = @_; if ( eof($fh)) { - Gtk2::Helper->remove_watch ($tag) - or &error; + Gtk2::Helper->remove_watch ($tag) or &error; close($fh); -# print '$fh er nå stengt..',"\n"; return 1; } @@ -202,37 +136,22 @@ push(@package_list, int($time)); push(@package_list, "$package_group"); push(@package_list, "$package"); -# print 'watcher_callback er ferdig',' - Data puttet inn er : ',"$time - $package_group - $package","\n"; -# print 'Kaller på $sett_opp_store',"\n"; -# &sett_opp_store; return 1; } sub test { -# print 'test ble kjørt',"\n"; my $testline = `tail -n1 $logfile`; chomp($testline); if($testline eq $lastline) { -# print 'Ingen forandringer i test..kjører som normalt..',"\n"; my $i = 0; my $i2 = 0; while($i < scalar(@package_list)) { -# print 'Sjekker $i og $i2 ...',"\n"; -# print '$i = ',$i,' - $i2 = ',$i2,"\n"; $status = &status_package($package_list[$i + 2]); -# print 'Sjekker $status ...',"\n"; -# ok( $status ); my $path = Gtk2::TreePath->new_from_string($i2); -# print 'Sjekker $path ...',"\n"; -# ok( $path ); my $iter = $store->get_iter($path); -# print 'Sjekker $iter ...',"\n"; -# ok( $iter ); -# print 'Sjekker $store ...',"\n"; -# ok( $store ); $store->set($iter, 2, $status); $i++; $i++; @@ -243,21 +162,14 @@ } else { -# print 'Forandringer funnet.. kjører refresh_list',"\n"; -# print 'refresh_list ble kjørt via test...',"\n"; @package_list = (); $store->clear; -# $treeview -> remove_column($_) foreach ($treeview -> get_columns()); &parselog("emerge"); -# &sett_opp_kolonner; -# &sett_opp_store; -# &test; } } sub status_package { -# print 'Status_package ble kjørt',"\n"; my $test = `tail -n100 $logfile | grep "$_[0]"| tail -n1`; my $isdone = (split /:::/, $test)[1]; if((split / /, $isdone)[1] eq "completed") @@ -268,11 +180,17 @@ { my $antatt_status = (split / /, $test)[6]; my $alternativ_status = (split / /, $test)[3]; - if($antatt_status eq "Compiling/Merging") { my $prosent = &prosent($_[0]); - return($prosent); + if($prosent eq "Ukjent status..") + { + return($antatt_status); + } + else + { + return($prosent); + } } else { @@ -284,7 +202,6 @@ sub prosent { -# print 'prosent ble kjørt',"\n"; my $progress; my $total = `find /var/tmp/portage/$_[0] -iname "*.c" -or -iname "*.cpp" -or -iname "*.cc" | wc -l`; chomp($total);