11
.github/workflows/ci.yml
vendored
11
.github/workflows/ci.yml
vendored
@@ -54,12 +54,13 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
swift:
|
swift:
|
||||||
- '5.1'
|
- swift:5.1
|
||||||
- '5.2'
|
- swift:5.2
|
||||||
- '5.3'
|
- swift:5.3
|
||||||
- '5.4'
|
- swift:5.4
|
||||||
|
- swiftlang/swift:nightly-5.5
|
||||||
container:
|
container:
|
||||||
image: swift:${{ matrix.swift }}
|
image: ${{ matrix.swift }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- run: useradd -ms /bin/bash mxcl
|
- run: useradd -ms /bin/bash mxcl
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
/// The `extension` that provides static properties that are common directories.
|
/// The `extension` that provides static properties that are common directories.
|
||||||
extension Path {
|
private enum Foo {
|
||||||
//MARK: Common Directories
|
//MARK: Common Directories
|
||||||
|
|
||||||
/// Returns a `Path` containing `FileManager.default.currentDirectoryPath`.
|
/// Returns a `Path` containing `FileManager.default.currentDirectoryPath`.
|
||||||
public static var cwd: DynamicPath {
|
static var cwd: DynamicPath {
|
||||||
return .init(string: FileManager.default.currentDirectoryPath)
|
return .init(string: FileManager.default.currentDirectoryPath)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns a `Path` representing the root path.
|
/// Returns a `Path` representing the root path.
|
||||||
public static var root: DynamicPath {
|
static var root: DynamicPath {
|
||||||
return .init(string: "/")
|
return .init(string: "/")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -27,7 +27,7 @@ extension Path {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/// Returns a `Path` representing the user’s home directory
|
/// Returns a `Path` representing the user’s home directory
|
||||||
public static var home: DynamicPath {
|
static var home: DynamicPath {
|
||||||
let string: String
|
let string: String
|
||||||
#if os(macOS)
|
#if os(macOS)
|
||||||
if #available(OSX 10.12, *) {
|
if #available(OSX 10.12, *) {
|
||||||
@@ -70,7 +70,7 @@ extension Path {
|
|||||||
- Note: There is no standard location for documents on Linux, thus we return `~/Documents`.
|
- Note: There is no standard location for documents on Linux, thus we return `~/Documents`.
|
||||||
- Note: You should create a subdirectory before creating any files.
|
- Note: You should create a subdirectory before creating any files.
|
||||||
*/
|
*/
|
||||||
public static var documents: DynamicPath {
|
static var documents: DynamicPath {
|
||||||
return path(for: .documentDirectory)
|
return path(for: .documentDirectory)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,7 +79,7 @@ extension Path {
|
|||||||
- Note: On Linux this is `XDG_CACHE_HOME`.
|
- Note: On Linux this is `XDG_CACHE_HOME`.
|
||||||
- Note: You should create a subdirectory before creating any files.
|
- Note: You should create a subdirectory before creating any files.
|
||||||
*/
|
*/
|
||||||
public static var caches: DynamicPath {
|
static var caches: DynamicPath {
|
||||||
return path(for: .cachesDirectory)
|
return path(for: .cachesDirectory)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,7 +88,7 @@ extension Path {
|
|||||||
- Note: On Linux is `XDG_DATA_HOME`.
|
- Note: On Linux is `XDG_DATA_HOME`.
|
||||||
- Note: You should create a subdirectory before creating any files.
|
- Note: You should create a subdirectory before creating any files.
|
||||||
*/
|
*/
|
||||||
public static var applicationSupport: DynamicPath {
|
static var applicationSupport: DynamicPath {
|
||||||
return path(for: .applicationSupportDirectory)
|
return path(for: .applicationSupportDirectory)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -108,13 +108,35 @@ func defaultUrl(for searchPath: FileManager.SearchPathDirectory) -> DynamicPath
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/// The `extension` that provides static properties that are common directories.
|
||||||
#if swift(>=5.5)
|
#if swift(>=5.5)
|
||||||
extension Pathish where Self == Path {
|
public extension Pathish where Self == Path {
|
||||||
static var home: DynamicPath { Path.home }
|
static var home: DynamicPath { return Foo.home }
|
||||||
static var root: DynamicPath { Path.root }
|
static var root: DynamicPath { return Foo.root }
|
||||||
static var cwd: DynamicPath { Path.cwd }
|
static var cwd: DynamicPath { return Foo.cwd }
|
||||||
static var documents: DynamicPath { Path.documents }
|
static var documents: DynamicPath { return Foo.documents }
|
||||||
static var caches: DynamicPath { Path.caches }
|
static var caches: DynamicPath { return Foo.caches }
|
||||||
static var applicationSupport: DynamicPath { Path.applicationSupport }
|
static var applicationSupport: DynamicPath { return Foo.applicationSupport }
|
||||||
|
static func source(for filePath: String = #filePath) -> (file: DynamicPath, directory: DynamicPath) {
|
||||||
|
return Foo.source(for: filePath)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
public extension Path {
|
||||||
|
static var home: DynamicPath { return Foo.home }
|
||||||
|
static var root: DynamicPath { return Foo.root }
|
||||||
|
static var cwd: DynamicPath { return Foo.cwd }
|
||||||
|
static var documents: DynamicPath { return Foo.documents }
|
||||||
|
static var caches: DynamicPath { return Foo.caches }
|
||||||
|
static var applicationSupport: DynamicPath { return Foo.applicationSupport }
|
||||||
|
#if swift(>=5.3)
|
||||||
|
static func source(for filePath: String = #filePath) -> (file: DynamicPath, directory: DynamicPath) {
|
||||||
|
return Foo.source(for: filePath)
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static func source(for file: String = #file) -> (file: DynamicPath, directory: DynamicPath) {
|
||||||
|
return Foo.source(for: file)
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -198,6 +198,6 @@ public extension Array where Element == Path {
|
|||||||
|
|
||||||
/// Options for `Path.ls(_:)`
|
/// Options for `Path.ls(_:)`
|
||||||
public enum ListDirectoryOptions {
|
public enum ListDirectoryOptions {
|
||||||
/// Creates intermediary directories; works the same as `mkdir -p`.
|
/// Lists hidden files also
|
||||||
case a
|
case a
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user