This repository has been archived on 2024-02-08 . You can view files and clone it, but cannot push or open issues or pull requests.
				
			
		
		
		
			
				
					
						
					
					e83b313766e696a152a06e0c08a4e7a5b317274b
				
			
			
		
	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 type- String;
- FSFileextending- FSEntryand adding a content property of the type- String, which will contain a textual file content;
- FSFolderextending- FSEntryand adding a content property of the type- List<FSEntry>listing files and folders stored within;
- FSCreatorimplementing a single- create(entryToCreate: FSEntry, destination: String)method that would create a directory hierarchy described by- entryToCreatein 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.
Description
				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".
						
						
						
					Languages
				
				
								
								
									Kotlin
								
								100%