11package main
22
33import (
4- "os/exec"
4+ "fmt"
5+ "log"
6+ "os"
57 "path"
68 "strings"
79
@@ -15,15 +17,24 @@ type Vlan struct {
1517}
1618
1719func checkRenderer () (string , error ) {
18- out , err := exec .Command ("bash" , "-c" , "grep renderer /etc/netplan/*.yaml" ).Output ()
20+ folder := path .Join ("/etc" , "netplan" )
21+ files , err := os .ReadDir (folder )
1922 if err != nil {
2023 return "" , err
2124 }
25+ for _ , file := range files {
26+ if file .IsDir () {
27+ continue
28+ }
2229
23- if strings .Contains (string (out ), "NetworkManager" ) {
24- return "NetworkManager" , nil
25- } else if strings .Contains (string (out ), "networkd" ) {
26- return "networkd" , nil
30+ bytes , err := os .ReadFile (path .Join (folder , file .Name ()))
31+ if err != nil {
32+ return "" , err
33+ }
34+
35+ if strings .Contains (fmt .Sprintf ("%s" , bytes ), "NetworkManager" ) {
36+ return "NetworkManager" , nil
37+ }
2738 }
2839
2940 return "networkd" , nil
@@ -40,11 +51,13 @@ func ConfigureVLAN(mainIface string) error {
4051 Iface : mainIface ,
4152 }
4253
54+ log .Println ("Generating vlan config" )
4355 err = utils .GenerateConfig (c , templates .Vlan , path .Join ("/etc" , "netplan" , "99-vlan.yaml" ))
4456 if err != nil {
4557 return err
4658 }
4759
60+ log .Println ("Applying vlan config" )
4861 if err := utils .RunCmd ("netplan" , "apply" ); err != nil {
4962 return err
5063 }
0 commit comments