@@ -3,7 +3,6 @@ package commands
33import (
44 "fmt"
55 "os"
6- "os/exec"
76 "regexp"
87 "strings"
98
@@ -73,24 +72,24 @@ func (cmd *DNS) configureMacRoutes(machine Machine) {
7372 if machine .IsXhyve () {
7473 cmd .removeHostFilter (machineIP )
7574 }
76- exec .Command ("sudo" , "route" , "-n" , "delete" , "-net" , "172.17.0.0" ).Run ()
77- util .StreamCommand (exec . Command ( "sudo" , "route" , "-n" , "add" , "172.17.0.0/16" , machineIP ) )
75+ util .Command ("sudo" , "route" , "-n" , "delete" , "-net" , "172.17.0.0" ).Run ()
76+ util .StreamCommand ("sudo" , "route" , "-n" , "add" , "172.17.0.0/16" , machineIP )
7877 if _ , err := os .Stat ("/usr/sbin/discoveryutil" ); err == nil {
7978 // Put this here for people running OS X 10.10.0 to 10.10.3 (oy vey.)
8079 cmd .out .Verbose .Println ("Restarting discoveryutil to flush DNS caches" )
81- util .StreamCommand (exec . Command ( "sudo" , "launchctl" , "unload" , "-w" , "/System/Library/LaunchDaemons/com.apple.discoveryd.plist" ) )
82- util .StreamCommand (exec . Command ( "sudo" , "launchctl" , "load" , "-w" , "/System/Library/LaunchDaemons/com.apple.discoveryd.plist" ) )
80+ util .StreamCommand ("sudo" , "launchctl" , "unload" , "-w" , "/System/Library/LaunchDaemons/com.apple.discoveryd.plist" )
81+ util .StreamCommand ("sudo" , "launchctl" , "load" , "-w" , "/System/Library/LaunchDaemons/com.apple.discoveryd.plist" )
8382 } else {
8483 // Reset DNS cache. We have seen this suddenly make /etc/resolver/vm work.
8584 cmd .out .Verbose .Println ("Restarting mDNSResponder to flush DNS caches" )
86- util .StreamCommand (exec . Command ( "sudo" , "killall" , "-HUP" , "mDNSResponder" ) )
85+ util .StreamCommand ("sudo" , "killall" , "-HUP" , "mDNSResponder" )
8786 }
8887}
8988
9089// removeHostFilter removes the host filter from the xhyve bridge interface
9190func (cmd * DNS ) removeHostFilter (ipAddr string ) {
9291 // #1: route -n get <machineIP> to find the interface name
93- routeData , err := exec .Command ("route" , "-n" , "get" , ipAddr ).CombinedOutput ()
92+ routeData , err := util .Command ("route" , "-n" , "get" , ipAddr ).CombinedOutput ()
9493 if err != nil {
9594 cmd .out .Warning .Println ("Unable to determine bridge interface to remove hostfilter" )
9695 return
@@ -99,7 +98,7 @@ func (cmd *DNS) removeHostFilter(ipAddr string) {
9998 iface := ifaceRegexp .FindStringSubmatch (string (routeData ))[1 ]
10099
101100 // #2: ifconfig <interface name> to get the details
102- ifaceData , err := exec .Command ("ifconfig" , iface ).CombinedOutput ()
101+ ifaceData , err := util .Command ("ifconfig" , iface ).CombinedOutput ()
103102 if err != nil {
104103 cmd .out .Warning .Println ("Unable to determine member to remove hostfilter" )
105104 return
@@ -108,13 +107,13 @@ func (cmd *DNS) removeHostFilter(ipAddr string) {
108107 member := memberRegexp .FindStringSubmatch (string (ifaceData ))[1 ]
109108
110109 // #4: ifconfig <bridge> -hostfilter <member>
111- util .StreamCommand (exec . Command ( "sudo" , "ifconfig" , iface , "-hostfilter" , member ) )
110+ util .StreamCommand ("sudo" , "ifconfig" , iface , "-hostfilter" , member )
112111}
113112
114113// ConfigureWindowsRoutes configures network routing
115114func (cmd * DNS ) configureWindowsRoutes (machine Machine ) {
116- exec .Command ("runas" , "/noprofile" , "/user:Administrator" , "route" , "DELETE" , "172.17.0.0" ).Run ()
117- util .StreamCommand (exec . Command ( "runas" , "/noprofile" , "/user:Administrator" , "route" , "-p" , "ADD" , "172.17.0.0/16" , machine .GetIP () ))
115+ util .Command ("runas" , "/noprofile" , "/user:Administrator" , "route" , "DELETE" , "172.17.0.0" ).Run ()
116+ util .StreamCommand ("runas" , "/noprofile" , "/user:Administrator" , "route" , "-p" , "ADD" , "172.17.0.0/16" , machine .GetIP ())
118117}
119118
120119// StartDNS will start the dnsdock service
@@ -149,7 +148,7 @@ func (cmd *DNS) StartDNS(machine Machine, nameservers string) error {
149148 for _ , server := range dnsServers {
150149 args = append (args , "--nameserver=" + server )
151150 }
152- util .ForceStreamCommand (exec . Command ( "docker" , args ... ) )
151+ util .ForceStreamCommand ("docker" , args ... )
153152
154153 // Configure the resolvers based on platform
155154 var resolverReturn error
@@ -168,21 +167,21 @@ func (cmd *DNS) configureMacResolver(machine Machine) error {
168167 cmd .out .Verbose .Print ("Configuring DNS resolution for macOS" )
169168 bridgeIP := machine .GetBridgeIP ()
170169
171- if err := exec .Command ("sudo" , "mkdir" , "-p" , "/etc/resolver" ).Run (); err != nil {
170+ if err := util .Command ("sudo" , "mkdir" , "-p" , "/etc/resolver" ).Run (); err != nil {
172171 return err
173172 }
174- if err := exec .Command ("bash" , "-c" , fmt .Sprintf ("echo 'nameserver %s' | sudo tee /etc/resolver/vm" , bridgeIP )).Run (); err != nil {
173+ if err := util .Command ("bash" , "-c" , fmt .Sprintf ("echo 'nameserver %s' | sudo tee /etc/resolver/vm" , bridgeIP )).Run (); err != nil {
175174 return err
176175 }
177176 if _ , err := os .Stat ("/usr/sbin/discoveryutil" ); err == nil {
178177 // Put this here for people running OS X 10.10.0 to 10.10.3 (oy vey.)
179178 cmd .out .Verbose .Println ("Restarting discoveryutil to flush DNS caches" )
180- util .StreamCommand (exec . Command ( "sudo" , "launchctl" , "unload" , "-w" , "/System/Library/LaunchDaemons/com.apple.discoveryd.plist" ) )
181- util .StreamCommand (exec . Command ( "sudo" , "launchctl" , "load" , "-w" , "/System/Library/LaunchDaemons/com.apple.discoveryd.plist" ) )
179+ util .StreamCommand ("sudo" , "launchctl" , "unload" , "-w" , "/System/Library/LaunchDaemons/com.apple.discoveryd.plist" )
180+ util .StreamCommand ("sudo" , "launchctl" , "load" , "-w" , "/System/Library/LaunchDaemons/com.apple.discoveryd.plist" )
182181 } else {
183182 // Reset DNS cache. We have seen this suddenly make /etc/resolver/vm work.
184183 cmd .out .Verbose .Println ("Restarting mDNSResponder to flush DNS caches" )
185- util .StreamCommand (exec . Command ( "sudo" , "killall" , "-HUP" , "mDNSResponder" ) )
184+ util .StreamCommand ("sudo" , "killall" , "-HUP" , "mDNSResponder" )
186185 }
187186 return nil
188187}
@@ -198,18 +197,18 @@ func (cmd *DNS) configureLinuxResolver() error {
198197 // Is NetworkManager in use
199198 if _ , err := os .Stat ("/etc/NetworkManager/dnsmasq.d" ); err == nil {
200199 // Install for NetworkManager/dnsmasq connection to dnsdock
201- util .StreamCommand (exec . Command ( "bash" , "-c" , fmt .Sprintf ("echo 'server=/vm/%s' | sudo tee /etc/NetworkManager/dnsmasq.d/dnsdock.conf" , bridgeIP ) ))
200+ util .StreamCommand ("bash" , "-c" , fmt .Sprintf ("echo 'server=/vm/%s' | sudo tee /etc/NetworkManager/dnsmasq.d/dnsdock.conf" , bridgeIP ))
202201
203202 // Restart NetworkManager if it is running
204- if err := exec .Command ("systemctl" , "is-active" , "NetworkManager" ).Run (); err != nil {
205- util .StreamCommand (exec . Command ( "sudo" , "systemctl" , "restart" , "NetworkManager" ) )
203+ if err := util .Command ("systemctl" , "is-active" , "NetworkManager" ).Run (); err != nil {
204+ util .StreamCommand ("sudo" , "systemctl" , "restart" , "NetworkManager" )
206205 }
207206 }
208207
209208 // Is libnss-resolver in use
210209 if _ , err := os .Stat ("/etc/resolver" ); err == nil {
211210 // Install for libnss-resolver connection to dnsdock
212- exec .Command ("bash" , "-c" , fmt .Sprintf ("echo 'nameserver %s:53' | sudo tee /etc/resolver/vm" , bridgeIP )).Run ()
211+ util .Command ("bash" , "-c" , fmt .Sprintf ("echo 'nameserver %s:53' | sudo tee /etc/resolver/vm" , bridgeIP )).Run ()
213212 }
214213
215214 return nil
@@ -224,6 +223,6 @@ func (cmd *DNS) configureWindowsResolver(machine Machine) error {
224223
225224// StopDNS stops the dnsdock service and cleans up
226225func (cmd * DNS ) StopDNS () {
227- exec .Command ("docker" , "stop" , "dnsdock" ).Run ()
228- exec .Command ("docker" , "rm" , "dnsdock" ).Run ()
226+ util .Command ("docker" , "stop" , "dnsdock" ).Run ()
227+ util .Command ("docker" , "rm" , "dnsdock" ).Run ()
229228}
0 commit comments