This PR contains the work done to support input parameters for the `create` command of the executable target, and to render content dynamically for the newly-generated project. Reviewed-on: #4 Co-authored-by: Javier Cicchelli <javier@rock-n-code.com> Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
32 lines
852 B
Swift
32 lines
852 B
Swift
import Foundation
|
|
|
|
public protocol FileServicing {
|
|
|
|
// MARK: Computed
|
|
|
|
var currentFolder: URL { get async }
|
|
|
|
// MARK: Functions
|
|
|
|
func copyFile(from source: URL, to destination: URL) async throws (FileServiceError)
|
|
func createFile(at location: URL, with data: Data) async throws (FileServiceError)
|
|
func createFolder(at location: URL) async throws (FileServiceError)
|
|
func deleteItem(at location: URL) async throws (FileServiceError)
|
|
func isItemExists(at location: URL) async throws (FileServiceError) -> Bool
|
|
|
|
}
|
|
|
|
// MARK: - Errors
|
|
|
|
public enum FileServiceError: Error, Equatable {
|
|
case fileDataIsEmpty
|
|
case fileNotCreated
|
|
case folderNotCreated
|
|
case itemAlreadyExists
|
|
case itemEmptyData
|
|
case itemNotCopied
|
|
case itemNotDeleted
|
|
case itemNotExists
|
|
case itemNotFileURL
|
|
}
|