diff options
Diffstat (limited to 'clients/flatify.pl')
-rwxr-xr-x | clients/flatify.pl | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/clients/flatify.pl b/clients/flatify.pl new file mode 100755 index 0000000..f2aa18a --- /dev/null +++ b/clients/flatify.pl @@ -0,0 +1,21 @@ +#! /usr/bin/perl + +# Make the given switch into a D-Link placement-wise. + +use strict; +use warnings; +use lib '../include'; +use nms; + +my $dbh = nms::db_connect(); +my $q = $dbh->prepare('SELECT switch,placement FROM switches NATURAL JOIN placements WHERE sysname LIKE ?'); +$q->execute('%'.$ARGV[0].'%'); + +while (my $ref = $q->fetchrow_hashref) { + $ref->{'placement'} =~ /\((\d+),(\d+)\),\((\d+),(\d+)\)/ or die; + my ($x1,$y1,$x2,$y2) = ($1, $2, $3, $4); + my $placement = sprintf "(%d,%d),(%d,%d)", $x2 - 100, $y2 - 16, $x2, $y2; + $dbh->do("UPDATE placements SET placement=? WHERE switch=?", + undef, $placement, $ref->{'switch'}); + last; # Take only one. +} |