first workting version
This commit is contained in:
1 parent
830765cb13
commit
d2048ea5b7
23 files changed
+292
-86
No files matched your search
@@ -0,0 +1,32 @@
|
||||
package ch.ergon.anytask.config
|
||||
|
||||
import com.charleskorn.kaml.Yaml
|
||||
import kotlinx.serialization.Serializable
|
||||
import java.io.File
|
||||
|
||||
@Serializable
|
||||
data class AppConfig(
|
||||
val apiKey: String = "",
|
||||
val spaceId: String = "",
|
||||
)
|
||||
|
||||
fun loadConfig(): AppConfig {
|
||||
val yaml = Yaml.default
|
||||
val serializer = AppConfig.serializer()
|
||||
|
||||
// External files take precedence (production use)
|
||||
val externalLocations = listOf(
|
||||
File(System.getProperty("user.home"), ".anytask/anytask.yaml"),
|
||||
File("anytask.yaml"),
|
||||
)
|
||||
externalLocations.firstOrNull { it.exists() }?.let {
|
||||
return yaml.decodeFromString(serializer, it.readText())
|
||||
}
|
||||
|
||||
// Fallback: classpath resource (development)
|
||||
AppConfig::class.java.getResourceAsStream("/anytask.yaml")?.let {
|
||||
return yaml.decodeFromString(serializer, it.bufferedReader().readText())
|
||||
}
|
||||
|
||||
return AppConfig()
|
||||
}
|
||||