portableDesktop implements Desktop by shelling out to the portabledesktop CLI via agentexec.Execer.
| 77 | // portableDesktop implements Desktop by shelling out to the |
| 78 | // portabledesktop CLI via agentexec.Execer. |
| 79 | type portableDesktop struct { |
| 80 | logger slog.Logger |
| 81 | execer agentexec.Execer |
| 82 | scriptBinDir string // coder script bin directory |
| 83 | clock quartz.Clock |
| 84 | |
| 85 | mu sync.Mutex |
| 86 | session *desktopSession // nil until started |
| 87 | binPath string // resolved path to binary, cached |
| 88 | closed bool |
| 89 | recordings map[string]*recordingProcess // guarded by mu |
| 90 | lastDesktopActionAt atomic.Int64 |
| 91 | } |
| 92 | |
| 93 | // NewPortableDesktop creates a Desktop backed by the portabledesktop |
| 94 | // CLI binary, using execer to spawn child processes. scriptBinDir is |
nothing calls this directly
no outgoing calls
no test coverage detected