diff options
author | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2009-03-16 09:56:35 -0700 |
---|---|---|
committer | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2009-03-16 09:56:35 -0700 |
commit | 8b782b88bd535d739166d21a4cbb95931fff2ce0 (patch) | |
tree | cc2cd62124edcef78ce6d86a11128ec63ab4a85a /scripts/vyatta_quagga_utils.pl | |
parent | ac7832987028d915b92abd718d2bc5212d301e8b (diff) | |
download | vyatta-cfg-quagga-8b782b88bd535d739166d21a4cbb95931fff2ce0.tar.gz vyatta-cfg-quagga-8b782b88bd535d739166d21a4cbb95931fff2ce0.zip |
Don't use closure in GetOptions
Although it looks cleaner, the error handling for closures
is different. Exit in closure from GetOptions, only fails the option
not the program.
Diffstat (limited to 'scripts/vyatta_quagga_utils.pl')
-rwxr-xr-x | scripts/vyatta_quagga_utils.pl | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/scripts/vyatta_quagga_utils.pl b/scripts/vyatta_quagga_utils.pl index c59bc87e..55254cbb 100755 --- a/scripts/vyatta_quagga_utils.pl +++ b/scripts/vyatta_quagga_utils.pl @@ -6,12 +6,19 @@ use Vyatta::Misc; use NetAddr::IP; use Getopt::Long; -GetOptions("check-prefix-boundry=s" => sub { check_prefix_boundry( $_[1] ); }, - "not-exists=s" => sub { check_not_exists($_[1]); }, - "exists=s" => sub { check_exists($_[1]); }, - "check-ospf-area=s" => sub { check_ospf_area($_[1]); }, +my ($prefix, $exists, $not_exists, $area); + +GetOptions("check-prefix-boundry=s" => \$prefix, + "not-exists=s" => \$not_exists, + "exists=s" => \$exists, + "check-ospf-area=s" => \$area, ); +check_prefix_boundry($prefix) if ($prefix); +check_not_exists($not_exists) if ($not_exists); +check_exists($exists) if ($exists); +check_ospf_area($area) if ($area); + exit 0; sub check_prefix_boundry { @@ -62,6 +69,7 @@ sub check_ospf_area { } exit 0 } - exit 1; + + die "Invalid OSPF area: $area\n"; } |