diff -r 86418a892c76 -r c44bc1c8e396 dnssec-keytool.pl --- a/dnssec-keytool.pl Thu Dec 30 12:42:59 2010 +0100 +++ b/dnssec-keytool.pl Thu Dec 30 15:29:33 2010 +0100 @@ -4,11 +4,17 @@ use strict; use FindBin; use File::Temp; +use Getopt::Long; +use Pod::Usage; sub read_conf; sub read_argv($); sub rm_keys(@); +sub ck_zone(@); +sub creat_ksk(@); sub creat_zsk(@); +sub post_creat(@); + MAIN: { my @zone; @@ -28,6 +34,30 @@ post_creat($conf{master_dir}, @zone); } +sub read_argv ($) { + my $master_dir = $_[0]; + my $zone; + my $do; # return + my @zone; # return + + GetOptions( + "z" => sub { $do = "zsk" }, + "k" => sub { $do = "ksk" }, + "h" => sub {pod2usage}, + "r" => sub { $do = "rm" }, + "c" => sub { $do = "ck" }, + ) or pod2usage; + + # checks the zones in argv if there are managed zones + for (@ARGV) { + chomp($zone = `idn --quiet "$_"`); + if (-e "$master_dir/$zone/$zone") { + push @zone, $zone; + } + } + return ($do, @zone); +} + sub read_conf { # read configuration @@ -53,45 +83,6 @@ return %return; } -sub read_argv ($) { - - # evaluate argv or print the help - my $master_dir = $_[0]; - - my $arg = shift @ARGV; - my $zone; - my $do; # return - my @zone; # return - - if (!defined $arg) { - print " usage: dnssec-keytool