package de.steamwar.commands.database import com.github.ajalt.clikt.core.CliktCommand import com.github.ajalt.clikt.core.CliktError import com.github.ajalt.clikt.core.requireObject import com.github.ajalt.mordant.rendering.TextColors import com.github.ajalt.mordant.rendering.TextStyles import de.steamwar.db.Database import de.steamwar.db.execute import de.steamwar.db.useDb import java.io.File class ResetCommand: CliktCommand() { val db by requireObject() override fun run() = useDb { val schemaFile = File("/var/Schema.sql") if (!schemaFile.exists()) { throw CliktError("Schema file not found!") } val schema = schemaFile.readText() val tables = execute("SHOW TABLES;") { it.getString(1) } for (table in tables) { execute("DROP TABLE IF EXISTS $table;") { } } execute(schema) { } echo(TextColors.brightGreen(TextStyles.bold("Database reset!"))) } }