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 | |
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.
-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"; } |