diff --git a/main.go b/main.go index 78ad464..004994c 100644 --- a/main.go +++ b/main.go @@ -439,6 +439,24 @@ func (m *SessionManager) GetCost(sessionID string) (string, *dbus.Error) { return sess.core.Cost(), nil } +func (m *SessionManager) GetEnv(sessionID string) (string, *dbus.Error) { + m.mu.RLock() + _, ok := m.sessions[sessionID] + m.mu.RUnlock() + if !ok { + return "", dbus.MakeFailedError(fmt.Errorf("session not found: %s", sessionID)) + } + var sb strings.Builder + fmt.Fprintf(&sb, "OLLIE_SESSION_ID=%s\n", sessionID) + for _, e := range os.Environ() { + if strings.HasPrefix(e, "OLLIE_") && !strings.HasPrefix(e, "OLLIE_SESSION_ID=") { + sb.WriteString(e) + sb.WriteByte('\n') + } + } + return sb.String(), nil +} + // --- Config --- func (m *SessionManager) GetConfig(sessionID string) (string, *dbus.Error) { @@ -1262,6 +1280,10 @@ const introspectXML = ` + + + +