X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=bin%2Ftemperature.pl;h=42eaffe666eb0fe4fa1caf5f4f4ec45f2d11b9a8;hb=8e71f6b905ec7ef2105d59a949d784a64ce9a574;hp=e342dfdf2e31be052a53c172ccfc815a6aee8f91;hpb=705c4fe91473507d6c89e4e63123c7b6b30a9048;p=config%2Fdotfiles.git diff --git a/bin/temperature.pl b/bin/temperature.pl index e342dfd..42eaffe 100755 --- a/bin/temperature.pl +++ b/bin/temperature.pl @@ -1,20 +1,46 @@ #!/usr/bin/perl +# Copyright (C) 2011-2012 Simon Ruderich +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + use strict; use warnings; -my $temperature_path = '/sys/devices/virtual/hwmon/hwmon0/temp1_input'; -my $critical_path = '/sys/devices/virtual/hwmon/hwmon0/temp1_crit'; +if (scalar @ARGV != 1 and (scalar @ARGV != 2 or not $ARGV[0] =~ /-[st]/)) { + print STDERR "Usage: $0 [-s | -t] \n"; + print STDERR "\n"; + print STDERR "Normally this is /sys/devices/platform/*.\n"; + exit 1; +} +if (scalar @ARGV == 1) { + @ARGV = ('', $ARGV[0]); +} + +my $temperature_path = "$ARGV[1]/temp1_input"; +my $critical_path = "$ARGV[1]/temp1_crit"; # No temperature information available. -if (! -e $temperature_path || ! -e $critical_path) { +if (not -e $temperature_path or not -e $critical_path) { + print STDERR "'$temperature_path' or '$critical_path' not found.\n"; exit 1; } -my $screen_mode = (defined $ARGV[0] and $ARGV[0] eq '-s'); -my $tmux_mode = (defined $ARGV[0] and $ARGV[0] eq '-t'); +my $screen_mode = ($ARGV[0] eq '-s'); +my $tmux_mode = ($ARGV[0] eq '-t'); my $temperature; my $critical; @@ -22,14 +48,16 @@ my $critical; my $file; open $file, '<', $temperature_path or die $!; $temperature = <$file>; -close $file; +close $file or die $!; open $file, '<', $critical_path or die $!; $critical = <$file>; -close $file; +close $file or die $!; my $value = int($temperature / 1000); my $risk = ($critical - $temperature)/$critical; +$value .= "\xb0"; # degree symbol in UTF-8 + # GNU screen mode with colors. if ($screen_mode) { my $color;