pppoe.nix (1041B)
1 { 2 liminix 3 , lib 4 , ppp 5 , pppoe 6 , writeAshScript 7 , serviceFns 8 } : 9 { interface, ppp-options }: 10 let 11 inherit (liminix.services) longrun; 12 name = "${interface.name}.pppoe"; 13 ip-up = writeAshScript "ip-up" {} '' 14 . ${serviceFns} 15 (in_outputs ${name} 16 echo $1 > ifname 17 echo $2 > tty 18 echo $3 > speed 19 echo $4 > address 20 echo $5 > peer-address 21 echo $DNS1 > ns1 22 echo $DNS2 > ns2 23 ) 24 echo >/proc/self/fd/10 25 ''; 26 ip6-up = writeAshScript "ip6-up" {} '' 27 . ${serviceFns} 28 (in_outputs ${name} 29 echo $4 > ipv6-address 30 echo $5 > ipv6-peer-address 31 ) 32 echo >/proc/self/fd/10 33 ''; 34 ppp-options' = ppp-options ++ [ 35 "ip-up-script" ip-up 36 "ipv6-up-script" ip6-up 37 "ipparam" name 38 "nodetach" 39 "usepeerdns" 40 "logfd" "2" 41 ]; 42 in 43 longrun { 44 inherit name; 45 run = '' 46 . ${serviceFns} 47 ${ppp}/bin/pppd pty "${pppoe}/bin/pppoe -I $(output ${interface} ifname)" ${lib.concatStringsSep " " ppp-options'} 48 ''; 49 notification-fd = 10; 50 dependencies = [ interface ]; 51 }