Files
sourcekit-lsp/Sources/SKSupport/FileSystem.swift
tomer doron 90fd3addb2 adjust to latest SwiftPM APIs (#741)
motivation: support changes in SwiftPM underlying path APIs

changes:
* adjust call sites in SwiftPMWorkspace to use SwiftPM's path
2023-05-04 17:35:21 -07:00

38 lines
1.4 KiB
Swift

//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2018 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
import Foundation
import struct TSCBasic.AbsolutePath
/// The home directory of the current user (same as returned by Foundation's `NSHomeDirectory` method).
public var homeDirectoryForCurrentUser: AbsolutePath {
try! AbsolutePath(validating: NSHomeDirectory())
}
extension AbsolutePath {
/// Inititializes an absolute path from a string, expanding a leading `~` to `homeDirectoryForCurrentUser` first.
public init(expandingTilde path: String) throws {
if path.first == "~" {
try self.init(homeDirectoryForCurrentUser, validating: String(path.dropFirst(2)))
} else {
try self.init(validating: path)
}
}
}
/// The directory to write generated module interfaces
public var defaultDirectoryForGeneratedInterfaces: AbsolutePath {
try! AbsolutePath(validating: NSTemporaryDirectory()).appending(component: "GeneratedInterfaces")
}