]>
Commit | Line | Data |
---|---|---|
69821f62 AT |
1 | #!/usr/bin/env perl |
2 | ||
3 | use strict; | |
4 | use warnings; | |
5 | use 5.005; | |
6 | ||
fd5076c8 | 7 | # usage: feed_ds.pl domain parent pdnsutil sqlcmd |
69821f62 AT |
8 | |
9 | my $domain = shift; | |
10 | my $parent = shift; | |
fd5076c8 | 11 | my $pdnsutil = shift; |
2539abbd AT |
12 | my $sqlcmd = shift; |
13 | ||
fd5076c8 | 14 | die "Usage: $0 domain parent pdnsutil sqlcmd" unless($domain and $parent and $pdnsutil and $sqlcmd); |
69821f62 | 15 | |
4fb1ad08 | 16 | open IN, "-|", "$pdnsutil show-zone -v $domain 2>&1"; |
69821f62 AT |
17 | |
18 | my $recs = []; | |
19 | ||
20 | while(<IN>) { | |
21 | chomp; | |
2539abbd | 22 | if (/DS = (.*) IN DS (.*) ;/) { |
69821f62 AT |
23 | # we have data |
24 | ||
25 | push @$recs, [ $1, $2 ] | |
26 | } | |
27 | } | |
28 | ||
29 | for my $rec (@$recs) { | |
30 | my ($name,$value) = @$rec; | |
995adb97 AT |
31 | # fix name |
32 | $name=~s/[.]$//; | |
2539abbd | 33 | my $sql = qq(INSERT INTO records (domain_id, name, type, content, ttl, auth) SELECT id, '$name', 'DS', '$value', 120, 1 FROM domains WHERE name = '$parent'); |
69821f62 | 34 | # then feed data |
2539abbd | 35 | qx($sqlcmd "$sql") |
69821f62 | 36 | } |