File: dns.sh

package info (click to toggle)
shoop 0.1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 328 kB
  • ctags: 41
  • sloc: sh: 1,138; makefile: 209; perl: 44
file content (93 lines) | stat: -rw-r--r-- 2,175 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/bin/sh -e
#
# LGPL copyright 2000 by Adam Heath <doogie@debian.org>


_shoop_quote="'"
OBJECT . new DNS

IFS=" " DNS . builddns :p '
	local counter\
		title=$($THIS . title) domain=$($THIS . domain)\
		mx=$($THIS . mx) address=$($THIS . address)\
		num_ns=$($THIS . num_ns)
	exec 3>&1
	echo $($THIS . file)
	echo ";"
	echo "; Domain name server configuration file - $title"
	echo ";"
	echo
	echo "@ IN SOA ns1.$domain root.ns1.$domain ("
	echo "	$($THIS . serial)"
	echo "	$($THIS . refresh)"
	echo "	$($THIS . retry)"
	echo "	$($THIS . expire)"
	echo "	$($THIS . ttl)"
	echo ")"
	echo
	if [ "$address" ]; then
		echo "	IN A	$address"
	fi
	if [ "$mx" ]; then
		echo "	IN MX	$mx"
	fi
	echo
	for counter in $(seq -s " " 1 $num_ns); do
		echo "	IN NS	ns$counter.$domain."
#		echo "ns$counter	IN A	$($THIS . ns_ip_$counter)"
	done
	echo
	for counter in $($THIS . hosts 2>/dev/null); do
		echo "$counter	IN A	$($THIS . host_ip_$counter)"
		: bar
		mx=$($THIS . host_mx_$counter 2>/dev/null)
		if [ "$mx" ];then
			echo "	IN MX	$mx"
		fi
	done
	echo
	for counter in $($THIS . cnames 2>/dev/null); do
		echo "$counter	IN CNAME	$($THIS . cname_$counter)"
		: bar
		mx=$($THIS . host_mx_$counter 2>/dev/null)
		if [ "$mx" ];then
			echo "	IN MX	$mx"
		fi
	done
	echo
	for counter in $($THIS . hosts 2>/dev/null); do
		echo "$($THIS . host_ip_$counter)	IN PTR	$counter.$($THIS . domain)."
	done
'
IFS=" " DNS . host :p '
	local host=$1; shift
	if [ -z "$($THIS . host_ip_$host 2>/dev/null)" ]; then
		$THIS . hosts =q "$($THIS . hosts 2>/dev/null) $host"
	fi
	$THIS . host_ip_$host =q "$@"
'
IFS=" " DNS . cname :p '
	local host=$1; shift
	if [ -z "$($THIS . cname_$host 2>/dev/null)" ]; then
		$THIS . cnames =q "$($THIS . cnames 2>/dev/null) $host"
	fi
	$THIS . cname_$host =q "$@"
'
IFS=" " DNS . gethost :p '$THIS . host_ip_$1'
DNS . host_mx :p '
	local host=$1;shift
	$THIS . host_mx_$host =q "$@"
'

IFS=" " DNS . serialize :p '
	local DISPLAYOBJ=$THIS oldargs="$@" PARENTS=$($THIS . parent)
	set -- $PARENTS
	if [ "$1" ]; then
		if [ $# -gt 1 ]; then
			echo "$THIS . parent $PARENTS"
		fi
		eval _shoopseen_parent=1
	fi
	set -- $oldargs
	$THIS . super "dummy" $DISPLAYOBJ
'