working!
This commit is contained in:
		
							
								
								
									
										12
									
								
								getstations.pl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										12
									
								
								getstations.pl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | use JSON::PP; | ||||||
|  | $DEBUG = $ENV{DEBUG}; | ||||||
|  | $CatchmentId = shift @ARGV; | ||||||
|  |  | ||||||
|  | print "Decoding...\n" if $DEBUG; | ||||||
|  | $in = decode_json(<>) or die; | ||||||
|  | foreach $station (@{$in->{data}}) { | ||||||
|  | 	if ($station->{url} =~ /CatchmentId=$CatchmentId$/) { | ||||||
|  | 		print "$station->{id}", $DEBUG ? ": $station->{station} on $station->{river}\n" : " "; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | print "\n" unless $DEBUG; | ||||||
							
								
								
									
										68
									
								
								river_levels_
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										68
									
								
								river_levels_
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,68 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | # | ||||||
|  | # Wildcard-script to monitor network interfaces. To monitor an | ||||||
|  | # interface, link vlan_<interface> to this file. E.g. | ||||||
|  | # | ||||||
|  | #    ln /usr/share/munin/node/plugins-contrib/vlan_ /etc/munin/node.d/vlan_eth0_1 | ||||||
|  | # | ||||||
|  | # ...will monitor eth0.1 | ||||||
|  | # | ||||||
|  | # Parameters: | ||||||
|  | # | ||||||
|  | # 	config | ||||||
|  | # 	autoconf | ||||||
|  | # 	suggest | ||||||
|  | # | ||||||
|  | #%# family=manual | ||||||
|  | #%# capabilities=autoconf suggest | ||||||
|  |  | ||||||
|  | # URLBASE= | ||||||
|  |  | ||||||
|  | CACHE=/tmp/river_level_.dat | ||||||
|  | checkdata () { | ||||||
|  | 	if test `find "$CACHE" -mtime +1` | ||||||
|  | 	then | ||||||
|  |     	curl -o $CACHE -Ss $URLBASE || exit 1 | ||||||
|  | 	fi | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | getstationname () { | ||||||
|  | 	checkdata | ||||||
|  | 	NAME=$( perl -MJSON::PP -e ' | ||||||
|  | 	open $fh, "/tmp/river_level_.dat" or die $!; | ||||||
|  | 	$data_arr = decode_json(<$fh>) or die $!; | ||||||
|  | 	my %data; | ||||||
|  | 	foreach (@{$data_arr->{data}}) { | ||||||
|  | 		$data{$_->{id}} = $_; | ||||||
|  | 	} | ||||||
|  | 	foreach (@ARGV) { print $data{$_}->{river}, " at ", $data{$_}->{station}, "\n"; } | ||||||
|  | 	' $* ) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | STATION=$(basename $0 | sed 's/^river_level_//g' | cut -d_ -f 3) | ||||||
|  |  | ||||||
|  | if [ "$1" = "autoconf" ]; then | ||||||
|  | 	echo "no" | ||||||
|  |     exit 0 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | if [ "$1" = "suggest" ]; then | ||||||
|  |     exit 0 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | if [ "$1" = "config" ]; then | ||||||
|  | 	getstationname $STATION | ||||||
|  | 	echo "graph_title River Level for $NAME [$STATION]" | ||||||
|  | 	echo 'graph_args --base 1000 -l 0 ' | ||||||
|  | 	echo 'graph_vlabel station level (metres)' | ||||||
|  | 	echo 'graph_category rivers' | ||||||
|  | 	echo 'graph_info This graph shows river levels' | ||||||
|  | 	echo "level.label $NAME" | ||||||
|  | 	echo 'level.info Current river level (metres)' | ||||||
|  | 	exit 0 | ||||||
|  | fi | ||||||
|  |  | ||||||
|  | curl -sS $URLBASE/$STATION | | ||||||
|  | 	perl -MJSON::PP -e '$d=decode_json(<>) or die; print "level.value $d->{data}->{current}->{level}\n";' | ||||||
|  |  | ||||||
		Reference in New Issue
	
	Block a user
	 foo
					foo