Sha256: 31ea7edf5d89e5d34140e2fd496c6305927d983916fa4a0c300b69d41f86a105

Contents?: true

Size: 1.31 KB

Versions: 2

Compression:

Stored size: 1.31 KB

Contents

module Getch
  class Config
    def initialize
      @systemd_net_dir = "#{MOUNTPOINT}/etc/systemd"
    end

    def network
      ethernet
      wifi
      resolved
      Getch::Chroot.new('systemctl enable systemd-networkd').run!
      Getch::Chroot.new('systemctl enable systemd-resolved').run!
    end

    private

    def ethernet
      conf = "#{@systemd_net_dir}/network/20-ethernet.network"
      datas = [
        "[Match]",
        "Name=en*",
        "Name=eth*",
        "[Network]",
        "DHCP=yes",
        "IPv6PrivacyExtensions=yes",
        "[DHCP]",
        "RouteMetric=512"
      ]
      File.write(conf, datas.join("\n"), mode: 'w')
    end

    def wifi
      conf = "#{@systemd_net_dir}/network/20-wireless.network"
      datas = [
        "[Match]",
        "Name=wlp*",
        "Name=wlan*",
        "[Network]",
        "DHCP=yes",
        "IPv6PrivacyExtensions=yes",
        "[DHCP]",
        "RouteMetric=1024",
      ]
      File.write(conf, datas.join("\n"), mode: 'w')
    end

    def resolved
      conf = "#{@systemd_net_dir}/resolved.conf.d/dns_over_tls.conf"
      datas = [
        "[Resolve]",
        "DNS=9.9.9.9#dns.quad9.net",
        "DNSOverTLS=yes",
      ]
      Helpers::create_dir("#{@systemd_net_dir}/resolved.conf.d")
      File.write(conf, datas.join("\n"), mode: 'w')
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
getch-0.1.5 lib/getch/config.rb
getch-0.1.3 lib/getch/config.rb