krz/orgstar

A native macOS editor for org-mode files. editor org-mode swift

Tests/OrgWorkspaceTests/Folder.swift

c1295824f55c7bba681fca8338bf08167e110105
orgstar/Tests/OrgWorkspaceTests/Folder.swift history · blame · raw

23 lines · 773 bytes

 1import Foundation
 2
 3/// A temporary folder that removes itself.
 4final class Folder {
 5    let url: URL
 6
 7    init() throws {
 8        url = FileManager.default.temporaryDirectory.appendingPathComponent("orgstar-\(UUID().uuidString)").standardizedFileURL
 9        try FileManager.default.createDirectory(at: url, withIntermediateDirectories: true)
10    }
11
12    deinit {
13        try? FileManager.default.removeItem(at: url)
14    }
15
16    @discardableResult
17    func write(_ path: String, _ text: String) throws -> URL {
18        let file = url.appendingPathComponent(path)
19        try FileManager.default.createDirectory(at: file.deletingLastPathComponent(), withIntermediateDirectories: true)
20        try Data(text.utf8).write(to: file)
21        return file.standardizedFileURL
22    }
23}