summaryrefslogtreecommitdiff
path: root/playbooks.d/dns-dnsmasq/playbook.bash
blob: f4be8cd3a7b14638cfd5f3b86f79ab9068671975 (plain)
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
#!/usr/bin/env bash

playbook_add() {
	info "$BASHTARD_PLAYBOOK" "Installing packages"
	pkg install dnsmasq

	playbook_sync

	info "$BASHTARD_PLAYBOOK" "Enabling services"
	svc enable dnsmasq
	svc start dnsmasq
}

playbook_sync() {
	mkdir -pv -- "$(config "fs.etcdir")/dnsmasq.d"

	info "$BASHTARD_PLAYBOOK" "Writing config"
	file_template "dnsmasq.conf" \
		"host=$(config "dns.host")" \
		"port=$(config "dns.port")" \
		"domain=$(config "dns.domain")" \
		"confd=$(config "fs.etcdir")/dnsmasq.d" \
		> "$(config "fs.etcdir")/dnsmasq.conf"

	while read -r key
	do
		printf "server=%s\n" "$(config "dns.upstream.$key")"
	done < <(config_subkeys "dns.upstream") > "$(config "fs.etcdir")/dnsmasq.d/servers.conf"

	while read -r key
	do
		printf "address=/$(config "dns.address.$key" | sed s@:@/@)\n"
	done < <(config_subkeys "dns.address") > "$(config "fs.etcdir")/dnsmasq.d/addresses.conf"

	[[ "$BASHTARD_COMMAND" == "add" ]] && return

	info "$BASHTARD_PLAYBOOK" "Restarting services"
	svc restart dnsmasq
}

playbook_del() {
	info "$BASHTARD_PLAYBOOK" "Disabling services"
	svc stop dnsmasq
	svc disable dnsmasq

	info "$BASHTARD_PLAYBOOK" "Uninstalling packages"
	pkg uninstall dnsmasq
}