enum File: String { case dockerFile = "docker_file" case dockerIgnore = "docker_ignore" case gitIgnore = "git_ignore" case license case package case 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" } } } // MARK: - CaseIterable extension File: CaseIterable {}