This fixes issue #417 where autoupdate installer files were not deleted on macOS, leading to accumulation of old installers. Key changes: - Store update files in application-specific directory - Clear update files directory on every app launch Other supporting changes: - Refactor file system operations to be more testable and reusable - Improve separation of concerns in directory management - Enhance dependency injection for auto-update logic - Fix async completion to support `await` operations - Add additional logging and revise some log messages during updates
24 lines
745 B
TypeScript
24 lines
745 B
TypeScript
import type {
|
|
CommandOps,
|
|
SystemOperations,
|
|
} from '@/infrastructure/CodeRunner/System/SystemOperations';
|
|
import type { FileSystemOperations } from '@/infrastructure/FileSystem/FileSystemOperations';
|
|
import { CommandOpsStub } from './CommandOpsStub';
|
|
import { FileSystemOperationsStub } from './FileSystemOperationsStub';
|
|
|
|
export class SystemOperationsStub implements SystemOperations {
|
|
public fileSystem: FileSystemOperations = new FileSystemOperationsStub();
|
|
|
|
public command: CommandOps = new CommandOpsStub();
|
|
|
|
public withFileSystem(fileSystem: FileSystemOperations): this {
|
|
this.fileSystem = fileSystem;
|
|
return this;
|
|
}
|
|
|
|
public withCommand(command: CommandOps): this {
|
|
this.command = command;
|
|
return this;
|
|
}
|
|
}
|