enum File: String { case dockerFile = "DockerFile" case dockerIgnore = "DockerIgnore" case gitIgnore = "GitIgnore" case license = "License" case package = "Package" case readme = "Readme" } // MARK: - Properties extension File { // MARK: Computed var fileName: String { switch self { case .dockerFile: "Dockerfile" case .dockerIgnore: ".dockerignore" case .gitIgnore: ".gitignore" case .license: "LICENSE" case .readme: "README.md" case .package: "Package.swift" } } var filePath: String { switch self { default: folder.path + fileName } } var folder: Folder { switch self { default: .root } } var resourcePath: String { switch self { default: "Resources/Files/Sources" } } } // MARK: - CaseIterable extension File: CaseIterable {}