* Calls the given async callback with the value of the XDG_CURRENT_DESKTOP environment variable set to ORIGINAL_XDG_CURRENT_DESKTOP if it is set. * @see https://www.electronjs.org/docs/latest/api/environment-variables#original_xdg_current_desktop * @param callback The async callback to call.
(callback: () => Promise<void>)
| 250 | * @param callback The async callback to call. |
| 251 | */ |
| 252 | async function callWithOriginalXdgCurrentDesktopAsync(callback: () => Promise<void>) { |
| 253 | const currXdgCurrentDesktopDefined = "XDG_CURRENT_DESKTOP" in process.env; |
| 254 | const currXdgCurrentDesktop = process.env.XDG_CURRENT_DESKTOP; |
| 255 | const originalXdgCurrentDesktop = getXdgCurrentDesktop(); |
| 256 | if (originalXdgCurrentDesktop) { |
| 257 | process.env.XDG_CURRENT_DESKTOP = originalXdgCurrentDesktop; |
| 258 | } |
| 259 | await callback(); |
| 260 | if (originalXdgCurrentDesktop) { |
| 261 | if (currXdgCurrentDesktopDefined) { |
| 262 | process.env.XDG_CURRENT_DESKTOP = currXdgCurrentDesktop; |
| 263 | } else { |
| 264 | delete process.env.XDG_CURRENT_DESKTOP; |
| 265 | } |
| 266 | } |
| 267 | } |
| 268 | |
| 269 | export { |
| 270 | callWithOriginalXdgCurrentDesktop, |
no test coverage detected