Gitnuro/src/main/kotlin/com/jetpackduba/gitnuro/managers/AppFilesManager.kt
2023-04-17 17:03:06 +02:00

43 lines
1.2 KiB
Kotlin

package com.jetpackduba.gitnuro.managers
import com.jetpackduba.gitnuro.system.OS
import com.jetpackduba.gitnuro.system.getCurrentOs
import com.jetpackduba.gitnuro.logging.printError
import java.io.File
import javax.inject.Inject
private const val TAG = "AppFilesManager"
class AppFilesManager @Inject constructor() {
fun getAppFolder(): File {
val baseFolderPath = when (getCurrentOs()) {
OS.LINUX -> {
var configFolder: String? = System.getenv("XDG_CONFIG_HOME")
if (configFolder.isNullOrEmpty())
configFolder = "${System.getenv("HOME")}/.config"
configFolder
}
OS.WINDOWS -> System.getenv("APPDATA").orEmpty()
OS.MAC -> System.getProperty("user.home") + "/Library/Application"
else -> {
printError(TAG, "Unknown OS")
throw Exception("Invalid OS")
}
}
val baseFolder = File(baseFolderPath)
baseFolder.mkdirs()
val appFolder = File(baseFolder, "gitnuro")
// TODO test if mkdir fails for some reason
if (!appFolder.exists() || !appFolder.isDirectory)
appFolder.mkdir()
return appFolder
}
}