refactor the mess into subs
This commit is contained in:
		
							parent
							
								
									ff1d80a7c2
								
							
						
					
					
						commit
						a532814e5e
					
				
					 1 changed files with 123 additions and 116 deletions
				
			
		
							
								
								
									
										63
									
								
								conky-disks
									
										
									
									
									
								
							
							
						
						
									
										63
									
								
								conky-disks
									
										
									
									
									
								
							|  | @ -39,20 +39,21 @@ sub magic_level { | |||
|   return $new_level; | ||||
| } | ||||
| 
 | ||||
| my $fs = Sys::Filesystem->new(); | ||||
| my @filesystems = $fs->filesystems(); | ||||
| sub conky_fs { | ||||
|   my $fs = Sys::Filesystem->new(); | ||||
|   my @filesystems = $fs->filesystems(); | ||||
| 
 | ||||
| # determine longest mount point path | ||||
| my $mlength = 5; | ||||
| for my $f (@filesystems) { | ||||
|   # determine longest mount point path | ||||
|   my $mlength = 5; | ||||
|   for my $f (@filesystems) { | ||||
|     my $mount_point = $fs->mount_point($f); | ||||
| 
 | ||||
|     if (length($mount_point) > $mlength) { | ||||
|       $mlength = length($mount_point); | ||||
|     } | ||||
| } | ||||
|   } | ||||
| 
 | ||||
| for my $f (@filesystems) { | ||||
|   for my $f (@filesystems) { | ||||
|     my $mount_point = $fs->mount_point($f); | ||||
|     my $format = $fs->format($f); | ||||
| 
 | ||||
|  | @ -86,23 +87,23 @@ for my $f (@filesystems) { | |||
|       $bfree/(1024*1024), | ||||
|       $mount_point | ||||
|     ); | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| # hddtemp | ||||
| sub conky_hddtemp { | ||||
|   my $color_toocold = "#0000ff"; | ||||
|   my $color_toohot  = "#ff0000"; | ||||
| 
 | ||||
| my $color_toocold = "#0000ff"; | ||||
| my $color_toohot  = "#ff0000"; | ||||
| 
 | ||||
| my $socket=IO::Socket::INET->new( | ||||
|   my $socket=IO::Socket::INET->new( | ||||
|     PeerAddr => 'localhost', PeerPort=> 7634, | ||||
|     Proto => 'tcp', Type => $IO::Socket::SOCK_STREAM) | ||||
|     or croak "Can't talk to hddtemp"; | ||||
| my $hddtemp_output = <$socket>; | ||||
| close $socket; | ||||
|   my $hddtemp_output = <$socket>; | ||||
|   close $socket; | ||||
| 
 | ||||
| my @hddtemp_output = split /[|]/x, $hddtemp_output; | ||||
| my $diskcount = $#hddtemp_output/5; | ||||
| for (my $i = 0; $i < $diskcount; $i++) { | ||||
|   my @hddtemp_output = split /[|]/x, $hddtemp_output; | ||||
|   my $diskcount = $#hddtemp_output/5; | ||||
|   for (my $i = 0; $i < $diskcount; $i++) { | ||||
|     my $dev   = $hddtemp_output[$i*5+1]; | ||||
|     my $temp  = $hddtemp_output[$i*5+3]; | ||||
|     my $unit  = $hddtemp_output[$i*5+4]; | ||||
|  | @ -116,15 +117,16 @@ for (my $i = 0; $i < $diskcount; $i++) { | |||
| 
 | ||||
|     printf "  \${color #98c2c7}%s\$color ", $dev; | ||||
|     printf "\${color $color}%02.f°%s\$color\n", $temp, $unit; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| # mdstat | ||||
| open my $fh, "<", "/proc/mdstat"; | ||||
| my $md_current; | ||||
| my $md_current_state; | ||||
| my $md_current_mdstat; | ||||
| sub conky_mdstat { | ||||
|   open my $fh, "<", "/proc/mdstat"; | ||||
|   my $md_current; | ||||
|   my $md_current_state; | ||||
|   my $md_current_mdstat; | ||||
| 
 | ||||
| sub print_md_current_state { | ||||
|   my $print_md_current_state = sub { | ||||
|     if (defined $md_current) { | ||||
|       my $color = $color_ok; | ||||
|       my $print_mdstat = 0; | ||||
|  | @ -149,14 +151,14 @@ sub print_md_current_state { | |||
|           $md_current_mdstat; | ||||
|       } | ||||
|     } | ||||
| } | ||||
|   }; | ||||
| 
 | ||||
| while (my $line = <$fh>) { | ||||
|   while (my $line = <$fh>) { | ||||
|     next if $line =~ /^Personalities\s*:/xsmi; | ||||
|     next if $line =~ /^unused\sdevices\s*:/xsmi; | ||||
| 
 | ||||
|     if ($line =~ /^(.*) : /) { | ||||
|     print_md_current_state(); | ||||
|       &$print_md_current_state(); | ||||
| 
 | ||||
|       $md_current = $1; | ||||
|       $md_current_state = undef; | ||||
|  | @ -168,8 +170,13 @@ while (my $line = <$fh>) { | |||
|     } | ||||
| 
 | ||||
|     $md_current_mdstat .= $line; | ||||
|   } | ||||
|   close $fh; | ||||
|   &$print_md_current_state(); | ||||
| } | ||||
| close $fh; | ||||
| print_md_current_state(); | ||||
| 
 | ||||
| conky_fs(); | ||||
| conky_hddtemp(); | ||||
| conky_mdstat(); | ||||
| 
 | ||||
| # vim:textwidth=120: | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue