Fix handling special chars in script paths
This commit improves the handling of paths with spaces or special characters during script execution in the desktop application. Key improvements: - Paths are now quoted for macOS/Linux, addressing issues with whitespace or single quotes. - Windows paths are enclosed in double quotes to handle special characters. Other supporting changes: - Add more documentation for terminal execution commands. - Refactor terminal script file execution into a dedicated file for improved separation of concerns. - Refactor naming of `RuntimeEnvironment` to align with naming conventions (no interface with I prefix) and for clarity. - Refactor `TemporaryFileCodeRunner` to simplify it by removing the `os` parameter and handling OS-specific logic within the filename generator instead. - Refactor `fileName` to `filename` for consistency.
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
import { IRuntimeEnvironment } from '@/infrastructure/RuntimeEnvironment/IRuntimeEnvironment';
|
||||
import { RuntimeEnvironment } from '@/infrastructure/RuntimeEnvironment/RuntimeEnvironment';
|
||||
import { HostRuntimeEnvironment } from '@/infrastructure/RuntimeEnvironment/HostRuntimeEnvironment';
|
||||
import { OperatingSystem } from '@/domain/OperatingSystem';
|
||||
import { RuntimeEnvironment } from '@/infrastructure/RuntimeEnvironment/RuntimeEnvironment';
|
||||
import { Bootstrapper } from '../Bootstrapper';
|
||||
|
||||
export class MobileSafariActivePseudoClassEnabler implements Bootstrapper {
|
||||
constructor(
|
||||
private readonly currentEnvironment = RuntimeEnvironment.CurrentEnvironment,
|
||||
private readonly currentEnvironment = HostRuntimeEnvironment.CurrentEnvironment,
|
||||
private readonly browser: BrowserAccessor = GlobalBrowserAccessor,
|
||||
) {
|
||||
|
||||
@@ -42,14 +42,14 @@ export interface BrowserAccessor {
|
||||
addWindowEventListener(...args: Parameters<typeof window.addEventListener>): void;
|
||||
}
|
||||
|
||||
function isMobileSafari(environment: IRuntimeEnvironment, userAgent: string): boolean {
|
||||
function isMobileSafari(environment: RuntimeEnvironment, userAgent: string): boolean {
|
||||
if (!isMobileAppleOperatingSystem(environment)) {
|
||||
return false;
|
||||
}
|
||||
return isSafari(userAgent);
|
||||
}
|
||||
|
||||
function isMobileAppleOperatingSystem(environment: IRuntimeEnvironment): boolean {
|
||||
function isMobileAppleOperatingSystem(environment: RuntimeEnvironment): boolean {
|
||||
if (environment.os === undefined) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user