IfState: Difference between revisions

m dhcpv4: adjust formatting
m dhcpv4: replace custom script with packaged udhcpc/default.script
 
Line 167: Line 167:
<syntaxhighlight lang="nixos">
<syntaxhighlight lang="nixos">
{ lib, pkgs, ... }:
{ lib, pkgs, ... }:
let
  script = pkgs.writeScript "ifstate-udhcp-script.sh" ''
    #! /bin/sh
    if [ "$1" = bound ]; then
      ${lib.getExe' pkgs.iproute2 "ip"} address add "$ip/$mask" dev "$interface"
      if [ -n "$mtu" ]; then
        ${lib.getExe' pkgs.iproute2 "ip"} link set mtu "$mtu" dev "$interface"
      fi
      if [ -n "$router" ]; then
        ${lib.getExe' pkgs.iproute2 "ip"} route add default via "$router" dev "$interface"
      fi
    fi
  '';
in
{
{
   networking.ifstate = {
   networking.ifstate = {
Line 186: Line 172:
     settings = {
     settings = {
       parameters.hooks.dhcp.script = pkgs.writeScript "ifstate-udhcp-wrapper-script.sh" ''
       parameters.hooks.dhcp.script = pkgs.writeScript "ifstate-udhcp-wrapper-script.sh" ''
         ${lib.getExe' pkgs.busybox "udhcpc"} --quit --now -i $IFS_IFNAME -b --script ${script}
         ${lib.getExe' pkgs.busybox "udhcpc"} --quit --now -i $IFS_IFNAME -b --script ${pkgs.busybox}/default.script
       '';
       '';
       interfaces.eth1 = {
       interfaces.eth1 = {