MCPcopy Create free account
hub / github.com/jetkvm/kvm / rpcSetDevModeState

Function rpcSetDevModeState

jsonrpc.go:429–463  ·  view source on GitHub ↗
(enabled bool)

Source from the content-addressed store, hash-verified

427}
428
429func rpcSetDevModeState(enabled bool) error {
430 if enabled {
431 if _, err := os.Stat(devModeFile); os.IsNotExist(err) {
432 if err := os.MkdirAll(filepath.Dir(devModeFile), 0755); err != nil {
433 return fmt.Errorf("failed to create directory for devmode file: %w", err)
434 }
435 if err := os.WriteFile(devModeFile, []byte{}, 0644); err != nil {
436 return fmt.Errorf("failed to create devmode file: %w", err)
437 }
438 } else {
439 logger.Debug().Msg("dev mode already enabled")
440 return nil
441 }
442 } else {
443 if _, err := os.Stat(devModeFile); err == nil {
444 if err := os.Remove(devModeFile); err != nil {
445 return fmt.Errorf("failed to remove devmode file: %w", err)
446 }
447 } else if os.IsNotExist(err) {
448 logger.Debug().Msg("dev mode already disabled")
449 return nil
450 } else {
451 return fmt.Errorf("error checking dev mode file: %w", err)
452 }
453 }
454
455 cmd := exec.Command("dropbear.sh")
456 output, err := cmd.CombinedOutput()
457 if err != nil {
458 logger.Warn().Err(err).Bytes("output", output).Msg("Failed to start/stop SSH")
459 return fmt.Errorf("failed to start/stop SSH, you may need to reboot for changes to take effect")
460 }
461
462 return nil
463}
464
465func rpcGetSSHKeyState() (string, error) {
466 keyData, err := os.ReadFile(sshKeyFile)

Callers

nothing calls this directly

Calls 3

ErrorfMethod · 0.80
DebugMethod · 0.80
WarnMethod · 0.80

Tested by

no test coverage detected