Skip to content

Commit e599b22

Browse files
author
Gerrit Garbereder
committed
Add CLI
1 parent 4e96a45 commit e599b22

File tree

4 files changed

+80
-0
lines changed

4 files changed

+80
-0
lines changed

Task-Tracker-CLI/build.gradle.kts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
plugins {
2+
kotlin("jvm") version "1.8.21"
3+
application
4+
}
5+
6+
group = "com.garbereder.tasktracker.entities"
7+
version = "1.0-SNAPSHOT"
8+
9+
repositories {
10+
mavenLocal()
11+
mavenCentral()
12+
maven ("https://jitpack.io")
13+
}
14+
15+
dependencies {
16+
testImplementation(kotlin("test"))
17+
implementation("com.github.kotlin-inquirer:kotlin-inquirer:0.1.0")
18+
implementation("com.garbereder.tasktracker.usecases:Task-Tracker-Usecases:1.0-SNAPSHOT")
19+
implementation("com.garbereder.tasktracker.entities:Task-Tracker-Entities:1.0-SNAPSHOT")
20+
implementation("com.garbereder.tasktracker.entities-impl:Task-Tracker-Entities-Impl:1.0-SNAPSHOT")
21+
}
22+
23+
tasks.test {
24+
useJUnitPlatform()
25+
}
26+
27+
kotlin {
28+
jvmToolchain(17)
29+
}
30+
31+
application {
32+
mainClass.set("MainKt")
33+
}

Task-Tracker-CLI/gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
kotlin.code.style=official

Task-Tracker-CLI/settings.gradle.kts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
2+
rootProject.name = "Task-Tracker-CLI"
3+
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
2+
import com.garbereder.tasktracker.entities.TaskCollection
3+
import com.garbereder.tasktracker.entities.TaskCollectionImpl
4+
import com.garbereder.tasktracker.usecases.tasks.AddTask
5+
import com.garbereder.tasktracker.usecases.tasks.ListTasks
6+
import com.garbereder.tasktracker.usecases.tasks.LoadTasks
7+
import com.garbereder.tasktracker.usecases.tasks.TaskCollectionReader
8+
import com.github.kinquirer.KInquirer
9+
import com.github.kinquirer.components.promptInput
10+
import com.github.kinquirer.components.promptList
11+
import kotlin.system.exitProcess
12+
13+
fun main() {
14+
println("Welcome to Task-Tracker-CLI")
15+
val tasks = LoadTasks(object : TaskCollectionReader {
16+
override fun read(): TaskCollection {
17+
return TaskCollectionImpl()
18+
}
19+
}).invoke()
20+
val addTask : (tasks: TaskCollection) -> Unit = {
21+
val taskName = KInquirer.promptInput("Task name:")
22+
AddTask(tasks, taskName).invoke()
23+
}
24+
val listTasks : (tasks: TaskCollection) -> Unit = {
25+
val taskIterator = ListTasks(tasks).invoke()
26+
while(taskIterator.hasNext()) {
27+
println(taskIterator.next().name)
28+
}
29+
}
30+
val quit : (tasks: TaskCollection) -> Unit = {
31+
exitProcess(0)
32+
}
33+
val choices = mapOf(
34+
"AddTask" to addTask,
35+
"ListTask" to listTasks,
36+
"Quit" to quit
37+
)
38+
while(true) {
39+
val selection: String = KInquirer.promptList("What do you want to do?", choices.keys.toList())
40+
choices[selection]!!.invoke(tasks)
41+
}
42+
43+
}

0 commit comments

Comments
 (0)