35 lines
871 B
Plaintext
35 lines
871 B
Plaintext
# TODO implement this in go
|
|
|
|
set -e -o pipefail
|
|
cd "$APPDIR"
|
|
|
|
conf_path="$_RUNTIME_DIR_PATH"/dnsmasq.conf
|
|
|
|
cat etc/dnsmasq/base.conf > "$conf_path"
|
|
|
|
tmp="$(mktemp -d -t cryptic-net-dnsmasq-entrypoint-XXX)"
|
|
|
|
( trap "rm -rf '$tmp'" EXIT
|
|
|
|
tar xzf "$_BOOTSTRAP_PATH" -C "$tmp" ./hosts
|
|
|
|
thisHostName=$(tar xzf "$_BOOTSTRAP_PATH" --to-stdout ./hostname)
|
|
thisHostIP=$(cat "$tmp"/hosts/"$thisHostName".yml | yq '.nebula.ip')
|
|
|
|
echo "listen-address=$thisHostIP" >> "$conf_path"
|
|
|
|
ls -1 "$tmp"/hosts | while read hostYml; do
|
|
|
|
hostName=$(echo "$hostYml" | cut -d. -f1)
|
|
hostIP=$(cat "$tmp"/hosts/"$hostYml" | yq '.nebula.ip')
|
|
echo "address=/${hostName}.hosts.cryptic.io/$hostIP" >> "$conf_path"
|
|
|
|
done
|
|
)
|
|
|
|
cat "$_DAEMON_YML_PATH" | \
|
|
yq '.dns.resolvers | .[] | "server=" + .' \
|
|
>> "$conf_path"
|
|
|
|
exec bin/dnsmasq -d -C "$conf_path"
|