Skip to content

Commit 54774d4

Browse files
authored
Network mode: enable/disable MDNS (#664)
1 parent ca459b5 commit 54774d4

File tree

2 files changed

+30
-28
lines changed

2 files changed

+30
-28
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
arduino ALL=(ALL) NOPASSWD: /usr/sbin/dpkg-reconfigure openssh-server, /usr/bin/systemctl enable ssh, /usr/bin/systemctl start ssh, /usr/bin/systemctl disable ssh, /usr/bin/systemctl stop ssh
1+
arduino ALL=(ALL) NOPASSWD: /usr/sbin/dpkg-reconfigure openssh-server, /usr/bin/systemctl enable ssh, /usr/bin/systemctl start ssh, /usr/bin/systemctl disable ssh, /usr/bin/systemctl stop ssh, /usr/bin/systemctl disable avahi-daemon, /usr/bin/systemctl stop avahi-daemon, /usr/bin/systemctl enable avahi-daemon, /usr/bin/systemctl start avahi-daemon

pkg/board/board.go

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -303,54 +303,56 @@ func SetUserPassword(ctx context.Context, conn remote.RemoteConn, newPass string
303303
}
304304

305305
func EnableNetworkMode(ctx context.Context, conn remote.RemoteConn) error {
306-
if err := conn.GetCmd("sudo", "dpkg-reconfigure", "openssh-server").Run(ctx); err != nil {
307-
return fmt.Errorf("failed to reconfigure openssh-server: %w", err)
306+
cmds := [][]string{
307+
{"sudo", "dpkg-reconfigure", "openssh-server"},
308+
{"sudo", "systemctl", "enable", "ssh"},
309+
{"sudo", "systemctl", "start", "ssh"},
310+
{"sudo", "systemctl", "enable", "avahi-daemon"},
311+
{"sudo", "systemctl", "start", "avahi-daemon"},
308312
}
309313

310-
if err := conn.GetCmd("sudo", "systemctl", "enable", "ssh").Run(ctx); err != nil {
311-
return fmt.Errorf("failed to enable ssh service: %w", err)
312-
}
313-
314-
if err := conn.GetCmd("sudo", "systemctl", "start", "ssh").Run(ctx); err != nil {
315-
return fmt.Errorf("failed to start ssh service: %w", err)
314+
for _, cmd := range cmds {
315+
if err := conn.GetCmd(cmd[0], cmd[1:]...).Run(ctx); err != nil {
316+
return fmt.Errorf("failed to run cmd %q: %w", strings.Join(cmd, " "), err)
317+
}
316318
}
317319

318320
return nil
319321
}
320322

321323
func NetworkModeStatus(ctx context.Context, conn remote.RemoteConn) (bool, error) {
322-
err := conn.GetCmd("systemctl", "is-enabled", "ssh").Run(ctx)
323-
if err != nil {
324-
var exitErr *exec.ExitError
325-
if errors.As(err, &exitErr) {
326-
if exitErr.ExitCode() != 0 {
327-
return false, nil
328-
}
329-
}
330-
return false, fmt.Errorf("failed to check ssh service status: %w", err)
324+
cmds := [][]string{
325+
{"systemctl", "is-enabled", "ssh"},
326+
{"systemctl", "is-active", "ssh"},
327+
{"systemctl", "is-enabled", "avahi-daemon"},
328+
{"systemctl", "is-active", "avahi-daemon"},
331329
}
332330

333-
err = conn.GetCmd("systemctl", "is-active", "ssh").Run(ctx)
334-
if err != nil {
335-
var exitErr *exec.ExitError
336-
if errors.As(err, &exitErr) {
337-
if exitErr.ExitCode() != 0 {
331+
for _, cmd := range cmds {
332+
if err := conn.GetCmd(cmd[0], cmd[1:]...).Run(ctx); err != nil {
333+
var exitErr *exec.ExitError
334+
if errors.As(err, &exitErr) && exitErr.ExitCode() != 0 {
338335
return false, nil
339336
}
337+
return false, fmt.Errorf("failed to run cmd %q: %w", strings.Join(cmd, " "), err)
340338
}
341-
return false, fmt.Errorf("failed to check ssh service status: %w", err)
342339
}
343340

344341
return true, nil
345342
}
346343

347344
func DisableNetworkMode(ctx context.Context, conn remote.RemoteConn) error {
348-
if err := conn.GetCmd("sudo", "systemctl", "disable", "ssh").Run(ctx); err != nil {
349-
return fmt.Errorf("failed to disable ssh service: %w", err)
345+
cmds := [][]string{
346+
{"sudo", "systemctl", "disable", "ssh"},
347+
{"sudo", "systemctl", "stop", "ssh"},
348+
{"sudo", "systemctl", "disable", "avahi-daemon"},
349+
{"sudo", "systemctl", "stop", "avahi-daemon"},
350350
}
351351

352-
if err := conn.GetCmd("sudo", "systemctl", "stop", "ssh").Run(ctx); err != nil {
353-
return fmt.Errorf("failed to stop ssh service: %w", err)
352+
for _, cmd := range cmds {
353+
if err := conn.GetCmd(cmd[0], cmd[1:]...).Run(ctx); err != nil {
354+
return fmt.Errorf("failed to run cmd %q: %w", strings.Join(cmd, " "), err)
355+
}
354356
}
355357

356358
return nil

0 commit comments

Comments
 (0)