Skip to content

Commit dc98e7f

Browse files
committed
Make FileSystem and directory path required
1 parent cefe320 commit dc98e7f

File tree

2 files changed

+19
-16
lines changed

2 files changed

+19
-16
lines changed

Sources/PackageFingerprint/FilePackageFingerprintStorage.swift

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ import TSCUtility
1717

1818
public struct FilePackageFingerprintStorage: PackageFingerprintStorage {
1919
let fileSystem: FileSystem
20-
let directory: AbsolutePath
20+
let directoryPath: AbsolutePath
2121

2222
private let encoder: JSONEncoder
2323
private let decoder: JSONDecoder
2424

25-
init(customFileSystem: FileSystem? = nil, customDirectory: AbsolutePath? = nil) {
26-
self.fileSystem = customFileSystem ?? localFileSystem
27-
self.directory = customDirectory ?? self.fileSystem.dotSwiftPM.appending(component: "fingerprints")
25+
init(fileSystem: FileSystem, directoryPath: AbsolutePath) {
26+
self.fileSystem = fileSystem
27+
self.directoryPath = directoryPath
2828

2929
self.encoder = JSONEncoder.makeWithDefaults()
3030
self.decoder = JSONDecoder.makeWithDefaults()
@@ -88,7 +88,7 @@ public struct FilePackageFingerprintStorage: PackageFingerprintStorage {
8888
}
8989

9090
private func loadFromDisk(package: PackageIdentity) throws -> PackageFingerprints {
91-
let path = self.directory.appending(component: package.fingerprintFilename)
91+
let path = self.directoryPath.appending(component: package.fingerprintFilename)
9292

9393
guard self.fileSystem.exists(path) else {
9494
return .init()
@@ -104,22 +104,22 @@ public struct FilePackageFingerprintStorage: PackageFingerprintStorage {
104104
}
105105

106106
private func saveToDisk(package: PackageIdentity, fingerprints: PackageFingerprints) throws {
107-
if !self.fileSystem.exists(self.directory) {
108-
try self.fileSystem.createDirectory(self.directory, recursive: true)
107+
if !self.fileSystem.exists(self.directoryPath) {
108+
try self.fileSystem.createDirectory(self.directoryPath, recursive: true)
109109
}
110110

111111
let container = StorageModel.Container(fingerprints)
112112
let buffer = try encoder.encode(container)
113113

114-
let path = self.directory.appending(component: package.fingerprintFilename)
114+
let path = self.directoryPath.appending(component: package.fingerprintFilename)
115115
try self.fileSystem.writeFileContents(path, bytes: ByteString(buffer))
116116
}
117117

118118
private func withLock<T>(_ body: () throws -> T) throws -> T {
119-
if !self.fileSystem.exists(self.directory) {
120-
try self.fileSystem.createDirectory(self.directory, recursive: true)
119+
if !self.fileSystem.exists(self.directoryPath) {
120+
try self.fileSystem.createDirectory(self.directoryPath, recursive: true)
121121
}
122-
return try self.fileSystem.withLock(on: self.directory, type: .exclusive, body)
122+
return try self.fileSystem.withLock(on: self.directoryPath, type: .exclusive, body)
123123
}
124124

125125
private func makeAsync<T>(_ closure: @escaping (Result<T, Error>) -> Void, on queue: DispatchQueue) -> (Result<T, Error>) -> Void {

Tests/PackageFingerprintTests/FilePackageFingerprintStorageTests.swift

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ import XCTest
1919
final class FilePackageFingerprintStorageTests: XCTestCase {
2020
func testHappyCase() throws {
2121
let mockFileSystem = InMemoryFileSystem()
22-
let storage = FilePackageFingerprintStorage(customFileSystem: mockFileSystem)
22+
let directoryPath = AbsolutePath("/fingerprints")
23+
let storage = FilePackageFingerprintStorage(fileSystem: mockFileSystem, directoryPath: directoryPath)
2324
let registryURL = Foundation.URL(string: "https://example.packages.com")!
2425
let sourceControlURL = Foundation.URL(string: "https://example.com/mona/LinkedList.git")!
2526

@@ -33,8 +34,8 @@ final class FilePackageFingerprintStorageTests: XCTestCase {
3334
try storage.put(package: otherPackage, version: Version("1.0.0"), fingerprint: .init(origin: .registry(registryURL), value: "checksum-1.0.0"))
3435

3536
// A checksum file should have been created for each package
36-
XCTAssertTrue(mockFileSystem.exists(storage.directory.appending(component: package.fingerprintFilename)))
37-
XCTAssertTrue(mockFileSystem.exists(storage.directory.appending(component: otherPackage.fingerprintFilename)))
37+
XCTAssertTrue(mockFileSystem.exists(storage.directoryPath.appending(component: package.fingerprintFilename)))
38+
XCTAssertTrue(mockFileSystem.exists(storage.directoryPath.appending(component: otherPackage.fingerprintFilename)))
3839

3940
// Fingerprints should be saved
4041
do {
@@ -67,7 +68,8 @@ final class FilePackageFingerprintStorageTests: XCTestCase {
6768

6869
func testNotFound() throws {
6970
let mockFileSystem = InMemoryFileSystem()
70-
let storage = FilePackageFingerprintStorage(customFileSystem: mockFileSystem)
71+
let directoryPath = AbsolutePath("/fingerprints")
72+
let storage = FilePackageFingerprintStorage(fileSystem: mockFileSystem, directoryPath: directoryPath)
7173
let registryURL = Foundation.URL(string: "https://example.packages.com")!
7274

7375
let package = PackageIdentity.plain("mona.LinkedList")
@@ -91,7 +93,8 @@ final class FilePackageFingerprintStorageTests: XCTestCase {
9193

9294
func testSingleFingerprintPerKind() throws {
9395
let mockFileSystem = InMemoryFileSystem()
94-
let storage = FilePackageFingerprintStorage(customFileSystem: mockFileSystem)
96+
let directoryPath = AbsolutePath("/fingerprints")
97+
let storage = FilePackageFingerprintStorage(fileSystem: mockFileSystem, directoryPath: directoryPath)
9598
let registryURL = Foundation.URL(string: "https://example.packages.com")!
9699

97100
let package = PackageIdentity.plain("mona.LinkedList")

0 commit comments

Comments
 (0)