Simpler
This commit is contained in:
+11
-51
@@ -6,26 +6,6 @@
|
|||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
provider_from_arg() {
|
|
||||||
case "${1:-}" in
|
|
||||||
Cloudflare | cloudflare)
|
|
||||||
echo "Cloudflare"
|
|
||||||
;;
|
|
||||||
Google | google)
|
|
||||||
echo "Google"
|
|
||||||
;;
|
|
||||||
DHCP | dhcp)
|
|
||||||
echo "DHCP"
|
|
||||||
;;
|
|
||||||
Custom | custom)
|
|
||||||
echo "Custom"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
return 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
current_dns_provider() {
|
current_dns_provider() {
|
||||||
local dns=""
|
local dns=""
|
||||||
local compact=""
|
local compact=""
|
||||||
@@ -53,27 +33,10 @@ current_dns_provider() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
self_path() {
|
|
||||||
local self="${BASH_SOURCE[0]}"
|
|
||||||
|
|
||||||
if [[ $self != /* ]]; then
|
|
||||||
self=$(command -v -- "$self")
|
|
||||||
fi
|
|
||||||
|
|
||||||
readlink -f "$self"
|
|
||||||
}
|
|
||||||
|
|
||||||
require_root() {
|
require_root() {
|
||||||
if (( EUID == 0 )); then
|
if (( EUID != 0 )); then
|
||||||
return
|
exec pkexec omarchy-dns "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! command -v pkexec >/dev/null; then
|
|
||||||
echo "Error: pkexec is required to change DNS settings." >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec pkexec "$(self_path)" "$@"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
lock_dns_to_resolved() {
|
lock_dns_to_resolved() {
|
||||||
@@ -104,7 +67,6 @@ unlock_dns_to_dhcp() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "Usage: omarchy-dns [Cloudflare|Google|DHCP|Custom]" >&2
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (( $# == 0 )); then
|
if (( $# == 0 )); then
|
||||||
@@ -112,20 +74,11 @@ if (( $# == 0 )); then
|
|||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if (( $# > 1 )); then
|
provider="$1"
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! provider=$(provider_from_arg "$1"); then
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
require_root "$provider"
|
|
||||||
|
|
||||||
case "$provider" in
|
case "$provider" in
|
||||||
Cloudflare)
|
Cloudflare)
|
||||||
|
require_root "$provider"
|
||||||
tee /etc/systemd/resolved.conf >/dev/null <<'EOF'
|
tee /etc/systemd/resolved.conf >/dev/null <<'EOF'
|
||||||
[Resolve]
|
[Resolve]
|
||||||
DNS=1.1.1.1#cloudflare-dns.com 1.0.0.1#cloudflare-dns.com 2606:4700:4700::1111#cloudflare-dns.com 2606:4700:4700::1001#cloudflare-dns.com
|
DNS=1.1.1.1#cloudflare-dns.com 1.0.0.1#cloudflare-dns.com 2606:4700:4700::1111#cloudflare-dns.com 2606:4700:4700::1001#cloudflare-dns.com
|
||||||
@@ -136,6 +89,7 @@ EOF
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
Google)
|
Google)
|
||||||
|
require_root "$provider"
|
||||||
tee /etc/systemd/resolved.conf >/dev/null <<'EOF'
|
tee /etc/systemd/resolved.conf >/dev/null <<'EOF'
|
||||||
[Resolve]
|
[Resolve]
|
||||||
DNS=8.8.8.8#dns.google 8.8.4.4#dns.google 2001:4860:4860::8888#dns.google 2001:4860:4860::8844#dns.google
|
DNS=8.8.8.8#dns.google 8.8.4.4#dns.google 2001:4860:4860::8888#dns.google 2001:4860:4860::8844#dns.google
|
||||||
@@ -146,6 +100,7 @@ EOF
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
DHCP)
|
DHCP)
|
||||||
|
require_root "$provider"
|
||||||
tee /etc/systemd/resolved.conf >/dev/null <<'EOF'
|
tee /etc/systemd/resolved.conf >/dev/null <<'EOF'
|
||||||
[Resolve]
|
[Resolve]
|
||||||
DNSOverTLS=no
|
DNSOverTLS=no
|
||||||
@@ -154,6 +109,7 @@ EOF
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
Custom)
|
Custom)
|
||||||
|
require_root "$provider"
|
||||||
echo "Enter your DNS servers (space-separated, e.g. '192.168.1.1 1.1.1.1'):"
|
echo "Enter your DNS servers (space-separated, e.g. '192.168.1.1 1.1.1.1'):"
|
||||||
if ! read -r dns_servers; then
|
if ! read -r dns_servers; then
|
||||||
dns_servers=""
|
dns_servers=""
|
||||||
@@ -171,6 +127,10 @@ FallbackDNS=9.9.9.9#dns.quad9.net 149.112.112.112#dns.quad9.net 2620:fe::fe#dns.
|
|||||||
EOF
|
EOF
|
||||||
lock_dns_to_resolved
|
lock_dns_to_resolved
|
||||||
;;
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: omarchy-dns [Cloudflare|Google|DHCP|Custom]" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
systemctl restart systemd-networkd systemd-resolved
|
systemctl restart systemd-networkd systemd-resolved
|
||||||
|
|||||||
Reference in New Issue
Block a user