# TeamCity Kotlin Script build step extension library - Test Task This is a small project to make a very basic filesystem library in Kotlin and was created using the instructions below as part of my application to the JetBrains internship project "TeamCity Kotlin Script build step extension library". ## Usage ### Gradle ```kotlin repositories { // other repositories maven { url "https://git.koval.net/api/packages/cyclane/maven" } } dependencies { // other dependencies implementation("net.koval.teamcity-build-step-extension-test-task:filesystem:0.1.0") } ``` ### Documentation Use autocompletion and hover menus in your IDE, or download the [generated HTML documentation](https://git.koval.net/cyclane/teamcity-build-step-extension-test-task/releases/download/v0.1.0/filesystem-0.1.0-javadoc.zip) from the [latest release](https://git.koval.net/cyclane/teamcity-build-step-extension-test-task/releases). ## Instructions Create a library implementing four classes: - `FSEntry`, an abstract class with a name property of the type `String`; - `FSFile` extending `FSEntry` and adding a content property of the type `String`, which will contain a textual file content; - `FSFolder` extending `FSEntry` and adding a content property of the type `List` listing files and folders stored within; - `FSCreator` implementing a single `create(entryToCreate: FSEntry, destination: String)` method that would create a directory hierarchy described by `entryToCreate` in a given file system destination path. Please consider various **corner cases** and **error handling**. **Unit tests** covering various scenarios are expected. The test task could be implemented in either Kotlin or Java.