#!/usr/bin/perl -Tw #false-laziness hack w freeside-login use strict; use FS::SessionClient qw( logoff portnum ); my $username = shift; my $portnum; if ( scalar(@ARGV) == 1 ) { my $arg = shift; if ( $arg =~ /^(\d+)$/ ) { $portnum = $1; } elsif ( $arg =~ /^([\d\.]+)$/ ) { $portnum = portnum( { 'ip' => $1 } ) or die "unknown ip!" } else { &usage; } } elsif ( scalar(@ARGV) == 2 ) { $portnum = portnum( { 'nasnum' => shift, 'nasport' => shift } ) or die "unknown nasnum/nasport"; } else { &usage; } my $error = login ( { 'username' => $username, 'portnum' => $portnum, } ); warn $error if $error; sub usage { die "Usage:\n\n freeside-logoff username ( portnum | ip | nasnum nasport )"; }