summaryrefslogtreecommitdiff
path: root/etc/powerdns/add-zone
diff options
context:
space:
mode:
Diffstat (limited to 'etc/powerdns/add-zone')
-rwxr-xr-xetc/powerdns/add-zone42
1 files changed, 42 insertions, 0 deletions
diff --git a/etc/powerdns/add-zone b/etc/powerdns/add-zone
new file mode 100755
index 0000000..d7f6a13
--- /dev/null
+++ b/etc/powerdns/add-zone
@@ -0,0 +1,42 @@
1#!/bin/sh
2
3usage() { echo "Usage: $0 <database.sqlite3> <domain>" >&2; exit ${1:-1}; }
4
5check_args()
6{
7 [ $# = 2 ] || usage 1
8 database=$1
9 domain=$2
10
11 [ -f "$database" ] || exit 1
12 [ -r "$database" ] || exit 2
13
14 case "$domain" in
15 -h|--help) exec 2>&1; usage 0 ;;
16 *\'*) usage 1 ;;
17 '') usage 1 ;;
18 *.) usage 1 ;;
19 *.*) ;;
20 *) [ "$ALLOW_TLD_ZONE" ] || usage 1 ;;
21 esac
22}
23
24add_zone()
25{
26 local database="$1" domain="$2" soa
27 soa="$domain hostmaster.$domain 1 10800 3600 604800 3600"
28 sqlite3 "$database" <<END
29 begin;
30 delete from domains where name='$domain' and type='NATIVE';
31 insert into domains (name, type) values ('$domain', 'NATIVE');
32
33 insert into records (domain_id, name, content, type, ttl, prio)
34 select id, '$domain', '$soa', 'SOA', 600, 1
35 from domains where name='$domain';
36 commit;
37END
38}
39
40check_args "$@"
41
42add_zone "$@"