Gleb Koval 18b9dac09d | ||
---|---|---|
.github/workflows | ||
.idea | ||
gradle/wrapper | ||
src | ||
.editorconfig | ||
.gitignore | ||
README.md | ||
build.gradle.kts | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
settings.gradle.kts |
README.md
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".
The package is (very creatively) named filesystem
.
Usage
Gradle
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 from the latest release.
Instructions
Create a library implementing four classes:
FSEntry
, an abstract class with a name property of the typeString
;FSFile
extendingFSEntry
and adding a content property of the typeString
, which will contain a textual file content;FSFolder
extendingFSEntry
and adding a content property of the typeList<FSEntry>
listing files and folders stored within;FSCreator
implementing a singlecreate(entryToCreate: FSEntry, destination: String)
method that would create a directory hierarchy described byentryToCreate
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.