mirror of
https://github.com/Anvilcraft/modpacktools
synced 2024-06-11 06:59:28 +02:00
add and implement AbstractCommand
less boilerplate!
This commit is contained in:
parent
b945983835
commit
c7b6672601
|
@ -0,0 +1,35 @@
|
||||||
|
package ley.anvil.modpacktools.command
|
||||||
|
|
||||||
|
import net.sourceforge.argparse4j.ArgumentParsers
|
||||||
|
import net.sourceforge.argparse4j.inf.ArgumentParser
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Implement this for commands. it is meant to reduce boilerplate.
|
||||||
|
*
|
||||||
|
* @param displayName the name of this command to be displayed in the help message
|
||||||
|
* @param name the internal name of the command. will be the display name in lower case and with _ instead of spaces by default
|
||||||
|
*/
|
||||||
|
abstract class AbstractCommand
|
||||||
|
|
||||||
|
@JvmOverloads
|
||||||
|
constructor(
|
||||||
|
val displayName: String,
|
||||||
|
override val name: String = displayName.toLowerCase().replace(' ', '_')
|
||||||
|
) : ICommand {
|
||||||
|
override val parser: ArgumentParser by lazy {
|
||||||
|
ArgumentParsers.newFor(displayName)
|
||||||
|
.build()
|
||||||
|
.description(helpMessage)
|
||||||
|
.apply {
|
||||||
|
addArgs()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This will be called to add arguments to the arg parser of this command.
|
||||||
|
* override this to add arguments.
|
||||||
|
*
|
||||||
|
* @receiver the parser to add the args to
|
||||||
|
*/
|
||||||
|
open fun ArgumentParser.addArgs() {}
|
||||||
|
}
|
|
@ -4,16 +4,14 @@ import ley.anvil.addonscript.wrapper.FileOrLink
|
||||||
import ley.anvil.modpacktools.CONFIG
|
import ley.anvil.modpacktools.CONFIG
|
||||||
import ley.anvil.modpacktools.MPJH
|
import ley.anvil.modpacktools.MPJH
|
||||||
import ley.anvil.modpacktools.TERMC
|
import ley.anvil.modpacktools.TERMC
|
||||||
|
import ley.anvil.modpacktools.command.AbstractCommand
|
||||||
import ley.anvil.modpacktools.command.CommandReturn
|
import ley.anvil.modpacktools.command.CommandReturn
|
||||||
import ley.anvil.modpacktools.command.CommandReturn.Companion.fail
|
import ley.anvil.modpacktools.command.CommandReturn.Companion.fail
|
||||||
import ley.anvil.modpacktools.command.ICommand
|
|
||||||
import ley.anvil.modpacktools.command.LoadCommand
|
import ley.anvil.modpacktools.command.LoadCommand
|
||||||
import ley.anvil.modpacktools.util.addonscript.installFile
|
import ley.anvil.modpacktools.util.addonscript.installFile
|
||||||
import ley.anvil.modpacktools.util.downloadFiles
|
import ley.anvil.modpacktools.util.downloadFiles
|
||||||
import ley.anvil.modpacktools.util.fPrintln
|
import ley.anvil.modpacktools.util.fPrintln
|
||||||
import ley.anvil.modpacktools.util.toZip
|
import ley.anvil.modpacktools.util.toZip
|
||||||
import net.sourceforge.argparse4j.ArgumentParsers
|
|
||||||
import net.sourceforge.argparse4j.inf.ArgumentParser
|
|
||||||
import net.sourceforge.argparse4j.inf.Namespace
|
import net.sourceforge.argparse4j.inf.Namespace
|
||||||
import org.apache.commons.io.FileUtils
|
import org.apache.commons.io.FileUtils
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
@ -22,14 +20,9 @@ import java.net.URL
|
||||||
import java.util.zip.ZipOutputStream
|
import java.util.zip.ZipOutputStream
|
||||||
|
|
||||||
@LoadCommand
|
@LoadCommand
|
||||||
object BuildTechnic : ICommand {
|
object BuildTechnic : AbstractCommand("BuildTechnic") {
|
||||||
override val name = "buildtechnic"
|
|
||||||
override val helpMessage = "Builds a technic export"
|
override val helpMessage = "Builds a technic export"
|
||||||
|
|
||||||
override val parser: ArgumentParser = ArgumentParsers.newFor("BuildTechnic")
|
|
||||||
.build()
|
|
||||||
.description(helpMessage)
|
|
||||||
|
|
||||||
private val tempDir by lazy {File(CONFIG.config.pathOrException<String>("Locations/tempDir"))}
|
private val tempDir by lazy {File(CONFIG.config.pathOrException<String>("Locations/tempDir"))}
|
||||||
private val tmp: File by lazy {File(tempDir, "technic")}
|
private val tmp: File by lazy {File(tempDir, "technic")}
|
||||||
private val download: File by lazy {File(tempDir, "download")}
|
private val download: File by lazy {File(tempDir, "download")}
|
||||||
|
|
|
@ -3,17 +3,16 @@ package ley.anvil.modpacktools.commands
|
||||||
import ley.anvil.modpacktools.CONFIG
|
import ley.anvil.modpacktools.CONFIG
|
||||||
import ley.anvil.modpacktools.MPJH
|
import ley.anvil.modpacktools.MPJH
|
||||||
import ley.anvil.modpacktools.TERMC
|
import ley.anvil.modpacktools.TERMC
|
||||||
|
import ley.anvil.modpacktools.command.AbstractCommand
|
||||||
import ley.anvil.modpacktools.command.CommandReturn
|
import ley.anvil.modpacktools.command.CommandReturn
|
||||||
import ley.anvil.modpacktools.command.CommandReturn.Companion.fail
|
import ley.anvil.modpacktools.command.CommandReturn.Companion.fail
|
||||||
import ley.anvil.modpacktools.command.CommandReturn.Companion.success
|
import ley.anvil.modpacktools.command.CommandReturn.Companion.success
|
||||||
import ley.anvil.modpacktools.command.ICommand
|
|
||||||
import ley.anvil.modpacktools.command.LoadCommand
|
import ley.anvil.modpacktools.command.LoadCommand
|
||||||
import ley.anvil.modpacktools.util.addonscript.installFile
|
import ley.anvil.modpacktools.util.addonscript.installFile
|
||||||
import ley.anvil.modpacktools.util.downloadFiles
|
import ley.anvil.modpacktools.util.downloadFiles
|
||||||
import ley.anvil.modpacktools.util.fPrintln
|
import ley.anvil.modpacktools.util.fPrintln
|
||||||
import ley.anvil.modpacktools.util.manifest.convertAStoManifest
|
import ley.anvil.modpacktools.util.manifest.convertAStoManifest
|
||||||
import ley.anvil.modpacktools.util.toZip
|
import ley.anvil.modpacktools.util.toZip
|
||||||
import net.sourceforge.argparse4j.ArgumentParsers
|
|
||||||
import net.sourceforge.argparse4j.impl.Arguments.storeTrue
|
import net.sourceforge.argparse4j.impl.Arguments.storeTrue
|
||||||
import net.sourceforge.argparse4j.inf.ArgumentParser
|
import net.sourceforge.argparse4j.inf.ArgumentParser
|
||||||
import net.sourceforge.argparse4j.inf.Namespace
|
import net.sourceforge.argparse4j.inf.Namespace
|
||||||
|
@ -26,22 +25,19 @@ import java.net.URL
|
||||||
import java.util.zip.ZipOutputStream
|
import java.util.zip.ZipOutputStream
|
||||||
|
|
||||||
@LoadCommand
|
@LoadCommand
|
||||||
object BuildTwitch : ICommand {
|
object BuildTwitch : AbstractCommand("BuildTwitch") {
|
||||||
override val name: String = "buildtwitch"
|
|
||||||
override val helpMessage: String = "builds a twitch export"
|
override val helpMessage: String = "builds a twitch export"
|
||||||
override val parser: ArgumentParser = ArgumentParsers.newFor("BuildTwitch")
|
|
||||||
.build()
|
|
||||||
.description(helpMessage)
|
|
||||||
.apply {
|
|
||||||
addArgument("-a", "--all")
|
|
||||||
.help("Downloads all relations instead of just required ones")
|
|
||||||
.action(storeTrue())
|
|
||||||
}
|
|
||||||
|
|
||||||
private val tempDir by lazy {File(CONFIG.config.pathOrException<String>("Locations/tempDir"))}
|
private val tempDir by lazy {File(CONFIG.config.pathOrException<String>("Locations/tempDir"))}
|
||||||
private val tmp: File by lazy {File(tempDir, "twitch")}
|
private val tmp: File by lazy {File(tempDir, "twitch")}
|
||||||
private val downloadDir by lazy {File(tempDir, "download")}
|
private val downloadDir by lazy {File(tempDir, "download")}
|
||||||
|
|
||||||
|
override fun ArgumentParser.addArgs() {
|
||||||
|
addArgument("-a", "--all")
|
||||||
|
.help("Downloads all relations instead of just required ones")
|
||||||
|
.action(storeTrue())
|
||||||
|
}
|
||||||
|
|
||||||
override fun execute(args: Namespace): CommandReturn {
|
override fun execute(args: Namespace): CommandReturn {
|
||||||
val wr = MPJH.asWrapper!!
|
val wr = MPJH.asWrapper!!
|
||||||
val ml = convertAStoManifest(wr) {args.getBoolean("all") || "required" in it.options}
|
val ml = convertAStoManifest(wr) {args.getBoolean("all") || "required" in it.options}
|
||||||
|
|
|
@ -18,12 +18,11 @@ import j2html.utils.CSSMin.compressCss
|
||||||
import ley.anvil.addonscript.wrapper.MetaData
|
import ley.anvil.addonscript.wrapper.MetaData
|
||||||
import ley.anvil.modpacktools.MPJH
|
import ley.anvil.modpacktools.MPJH
|
||||||
import ley.anvil.modpacktools.TERMC
|
import ley.anvil.modpacktools.TERMC
|
||||||
|
import ley.anvil.modpacktools.command.AbstractCommand
|
||||||
import ley.anvil.modpacktools.command.CommandReturn
|
import ley.anvil.modpacktools.command.CommandReturn
|
||||||
import ley.anvil.modpacktools.command.CommandReturn.Companion.success
|
import ley.anvil.modpacktools.command.CommandReturn.Companion.success
|
||||||
import ley.anvil.modpacktools.command.ICommand
|
|
||||||
import ley.anvil.modpacktools.command.LoadCommand
|
import ley.anvil.modpacktools.command.LoadCommand
|
||||||
import ley.anvil.modpacktools.util.fPrintln
|
import ley.anvil.modpacktools.util.fPrintln
|
||||||
import net.sourceforge.argparse4j.ArgumentParsers
|
|
||||||
import net.sourceforge.argparse4j.impl.Arguments.storeTrue
|
import net.sourceforge.argparse4j.impl.Arguments.storeTrue
|
||||||
import net.sourceforge.argparse4j.impl.type.CaseInsensitiveEnumNameArgumentType
|
import net.sourceforge.argparse4j.impl.type.CaseInsensitiveEnumNameArgumentType
|
||||||
import net.sourceforge.argparse4j.impl.type.FileArgumentType
|
import net.sourceforge.argparse4j.impl.type.FileArgumentType
|
||||||
|
@ -38,31 +37,26 @@ import java.nio.charset.StandardCharsets
|
||||||
import java.util.Comparator.comparing
|
import java.util.Comparator.comparing
|
||||||
|
|
||||||
@LoadCommand
|
@LoadCommand
|
||||||
object CreateModlist : ICommand {
|
object CreateModlist : AbstractCommand("CreateModlist") {
|
||||||
override val name: String = "createmodlist"
|
|
||||||
override val helpMessage: String = "This creates a modlist either as html or csv file."
|
override val helpMessage: String = "This creates a modlist either as html or csv file."
|
||||||
override val parser: ArgumentParser = run {
|
|
||||||
val parser = ArgumentParsers.newFor("CreateModlist").build()
|
|
||||||
.description(helpMessage)
|
|
||||||
|
|
||||||
parser.addArgument("-s", "--sorting")
|
override fun ArgumentParser.addArgs() {
|
||||||
|
addArgument("-s", "--sorting")
|
||||||
.type(CaseInsensitiveEnumNameArgumentType(Sorting::class.java))
|
.type(CaseInsensitiveEnumNameArgumentType(Sorting::class.java))
|
||||||
.setDefault(Sorting.NAME)
|
.setDefault(Sorting.NAME)
|
||||||
.help("Determines How mods should be sorted")
|
.help("Determines How mods should be sorted")
|
||||||
|
|
||||||
parser.addArgument("-a", "--all")
|
addArgument("-a", "--all")
|
||||||
.action(storeTrue())
|
.action(storeTrue())
|
||||||
.help("If this is set, all relations and not only be mods will be in the list")
|
.help("If this is set, all relations and not only be mods will be in the list")
|
||||||
|
|
||||||
parser.addArgument("type")
|
addArgument("type")
|
||||||
.type(CaseInsensitiveEnumNameArgumentType(Format::class.java))
|
.type(CaseInsensitiveEnumNameArgumentType(Format::class.java))
|
||||||
.help("What format the mod list should be made in")
|
.help("What format the mod list should be made in")
|
||||||
|
|
||||||
parser.addArgument("file")
|
addArgument("file")
|
||||||
.type(FileArgumentType().verifyNotExists())
|
.type(FileArgumentType().verifyNotExists())
|
||||||
.help("What file the mod list should be written to")
|
.help("What file the mod list should be written to")
|
||||||
|
|
||||||
parser
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun execute(args: Namespace): CommandReturn {
|
override fun execute(args: Namespace): CommandReturn {
|
||||||
|
@ -107,7 +101,12 @@ object CreateModlist : ICommand {
|
||||||
head(
|
head(
|
||||||
style(
|
style(
|
||||||
//Fancy css!
|
//Fancy css!
|
||||||
compressCss(IOUtils.toString(ClassLoader.getSystemResourceAsStream("commands/createmodlist/style.css"), StandardCharsets.UTF_8))
|
compressCss(
|
||||||
|
IOUtils.toString(
|
||||||
|
ClassLoader.getSystemResourceAsStream("commands/createmodlist/style.css"),
|
||||||
|
StandardCharsets.UTF_8
|
||||||
|
)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
body(
|
body(
|
||||||
|
@ -164,7 +163,8 @@ object CreateModlist : ICommand {
|
||||||
return success("Wrote HTML file")
|
return success("Wrote HTML file")
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getMods(all: Boolean, sorting: Comparator<MetaData>): List<MetaData> = MPJH.getModMetas(if(all) null else arrayOf("mod")).sortedWith(sorting)
|
private fun getMods(all: Boolean, sorting: Comparator<MetaData>): List<MetaData> =
|
||||||
|
MPJH.getModMetas(if(all) null else arrayOf("mod")).sortedWith(sorting)
|
||||||
|
|
||||||
enum class Format {
|
enum class Format {
|
||||||
HTML, CSV
|
HTML, CSV
|
||||||
|
|
|
@ -2,14 +2,13 @@ package ley.anvil.modpacktools.commands
|
||||||
|
|
||||||
import ley.anvil.addonscript.wrapper.FileOrLink
|
import ley.anvil.addonscript.wrapper.FileOrLink
|
||||||
import ley.anvil.modpacktools.MPJH
|
import ley.anvil.modpacktools.MPJH
|
||||||
|
import ley.anvil.modpacktools.command.AbstractCommand
|
||||||
import ley.anvil.modpacktools.command.CommandReturn
|
import ley.anvil.modpacktools.command.CommandReturn
|
||||||
import ley.anvil.modpacktools.command.CommandReturn.Companion.success
|
import ley.anvil.modpacktools.command.CommandReturn.Companion.success
|
||||||
import ley.anvil.modpacktools.command.ICommand
|
|
||||||
import ley.anvil.modpacktools.command.LoadCommand
|
import ley.anvil.modpacktools.command.LoadCommand
|
||||||
import ley.anvil.modpacktools.util.DownloadFileTask
|
import ley.anvil.modpacktools.util.DownloadFileTask
|
||||||
import ley.anvil.modpacktools.util.downloadFiles
|
import ley.anvil.modpacktools.util.downloadFiles
|
||||||
import ley.anvil.modpacktools.util.fPrintln
|
import ley.anvil.modpacktools.util.fPrintln
|
||||||
import net.sourceforge.argparse4j.ArgumentParsers
|
|
||||||
import net.sourceforge.argparse4j.impl.Arguments.storeTrue
|
import net.sourceforge.argparse4j.impl.Arguments.storeTrue
|
||||||
import net.sourceforge.argparse4j.impl.type.FileArgumentType
|
import net.sourceforge.argparse4j.impl.type.FileArgumentType
|
||||||
import net.sourceforge.argparse4j.inf.ArgumentParser
|
import net.sourceforge.argparse4j.inf.ArgumentParser
|
||||||
|
@ -19,37 +18,31 @@ import java.net.URL
|
||||||
import java.util.stream.Collectors.toMap
|
import java.util.stream.Collectors.toMap
|
||||||
|
|
||||||
@LoadCommand
|
@LoadCommand
|
||||||
object DownloadMods : ICommand {
|
object DownloadMods : AbstractCommand("DownloadMods") {
|
||||||
override val name: String = "downloadmods"
|
|
||||||
override val helpMessage: String = "Downloads all mods."
|
override val helpMessage: String = "Downloads all mods."
|
||||||
override val parser: ArgumentParser = run {
|
|
||||||
val parser = ArgumentParsers.newFor("DownloadMods")
|
|
||||||
.build()
|
|
||||||
.description(helpMessage)
|
|
||||||
|
|
||||||
parser.addArgument("dir")
|
override fun ArgumentParser.addArgs() {
|
||||||
|
addArgument("dir")
|
||||||
.type(FileArgumentType().verifyCanCreate())
|
.type(FileArgumentType().verifyCanCreate())
|
||||||
.help("the directory to download the mods to")
|
.help("the directory to download the mods to")
|
||||||
|
|
||||||
parser.addArgument("-f", "--force")
|
addArgument("-f", "--force")
|
||||||
.action(storeTrue())
|
.action(storeTrue())
|
||||||
.help("if true, mods that are already in the download folder will be downloaded again")
|
.help("if true, mods that are already in the download folder will be downloaded again")
|
||||||
|
|
||||||
parser.addArgument("-a", "--all")
|
addArgument("-a", "--all")
|
||||||
.action(storeTrue())
|
.action(storeTrue())
|
||||||
.help("Downloads not only mods but everything with a dir installer")
|
.help("Downloads not only mods but everything with a dir installer")
|
||||||
|
|
||||||
parser
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun execute(args: Namespace): CommandReturn {
|
override fun execute(args: Namespace): CommandReturn {
|
||||||
val json = MPJH.asWrapper
|
val json = MPJH.asWrapper
|
||||||
val fileList = mutableListOf<FileOrLink>()
|
val fileList = mutableListOf<FileOrLink>()
|
||||||
for(
|
for(
|
||||||
rel in json!!.defaultVersion!!.getRelations(
|
rel in json!!.defaultVersion!!.getRelations(
|
||||||
arrayOf("client"),
|
arrayOf("client"),
|
||||||
if(args.getBoolean("all")) null else arrayOf("mod")
|
if(args.getBoolean("all")) null else arrayOf("mod")
|
||||||
)!!
|
)!!
|
||||||
) //TODO only client? what if someone wants a server?
|
) //TODO only client? what if someone wants a server?
|
||||||
if(rel.hasFile())
|
if(rel.hasFile())
|
||||||
fileList.add(rel.file.get())
|
fileList.add(rel.file.get())
|
||||||
|
|
|
@ -3,13 +3,12 @@ package ley.anvil.modpacktools.commands
|
||||||
import ley.anvil.addonscript.curse.ManifestJSON
|
import ley.anvil.addonscript.curse.ManifestJSON
|
||||||
import ley.anvil.modpacktools.GSON
|
import ley.anvil.modpacktools.GSON
|
||||||
import ley.anvil.modpacktools.MPJH
|
import ley.anvil.modpacktools.MPJH
|
||||||
|
import ley.anvil.modpacktools.command.AbstractCommand
|
||||||
import ley.anvil.modpacktools.command.CommandReturn
|
import ley.anvil.modpacktools.command.CommandReturn
|
||||||
import ley.anvil.modpacktools.command.CommandReturn.Companion.fail
|
import ley.anvil.modpacktools.command.CommandReturn.Companion.fail
|
||||||
import ley.anvil.modpacktools.command.CommandReturn.Companion.success
|
import ley.anvil.modpacktools.command.CommandReturn.Companion.success
|
||||||
import ley.anvil.modpacktools.command.ICommand
|
|
||||||
import ley.anvil.modpacktools.command.LoadCommand
|
import ley.anvil.modpacktools.command.LoadCommand
|
||||||
import ley.anvil.modpacktools.util.readAsJson
|
import ley.anvil.modpacktools.util.readAsJson
|
||||||
import net.sourceforge.argparse4j.ArgumentParsers
|
|
||||||
import net.sourceforge.argparse4j.impl.type.FileArgumentType
|
import net.sourceforge.argparse4j.impl.type.FileArgumentType
|
||||||
import net.sourceforge.argparse4j.inf.ArgumentParser
|
import net.sourceforge.argparse4j.inf.ArgumentParser
|
||||||
import net.sourceforge.argparse4j.inf.Namespace
|
import net.sourceforge.argparse4j.inf.Namespace
|
||||||
|
@ -17,16 +16,14 @@ import java.io.File
|
||||||
import java.io.FileWriter
|
import java.io.FileWriter
|
||||||
|
|
||||||
@LoadCommand
|
@LoadCommand
|
||||||
object Import : ICommand {
|
object Import : AbstractCommand("Import") {
|
||||||
override val name: String = "import"
|
|
||||||
override val helpMessage: String = "Converts a given manifest file to a modpackjson file"
|
override val helpMessage: String = "Converts a given manifest file to a modpackjson file"
|
||||||
override val parser: ArgumentParser = ArgumentParsers.newFor("Import")
|
|
||||||
.build()
|
override fun ArgumentParser.addArgs() {
|
||||||
.apply {
|
addArgument("manifest")
|
||||||
addArgument("manifest")
|
.help("the manifest file to import")
|
||||||
.help("the manifest file to import")
|
.type(FileArgumentType().verifyIsFile())
|
||||||
.type(FileArgumentType().verifyIsFile())
|
}
|
||||||
}
|
|
||||||
|
|
||||||
override val needsModpackjson: Boolean = false
|
override val needsModpackjson: Boolean = false
|
||||||
override val needsConfig: Boolean = false
|
override val needsConfig: Boolean = false
|
||||||
|
|
|
@ -2,23 +2,17 @@ package ley.anvil.modpacktools.commands
|
||||||
|
|
||||||
import ley.anvil.addonscript.v1.AddonscriptJSON
|
import ley.anvil.addonscript.v1.AddonscriptJSON
|
||||||
import ley.anvil.modpacktools.CONFIG
|
import ley.anvil.modpacktools.CONFIG
|
||||||
|
import ley.anvil.modpacktools.command.AbstractCommand
|
||||||
import ley.anvil.modpacktools.command.CommandReturn
|
import ley.anvil.modpacktools.command.CommandReturn
|
||||||
import ley.anvil.modpacktools.command.CommandReturn.Companion.success
|
import ley.anvil.modpacktools.command.CommandReturn.Companion.success
|
||||||
import ley.anvil.modpacktools.command.ICommand
|
|
||||||
import ley.anvil.modpacktools.command.LoadCommand
|
import ley.anvil.modpacktools.command.LoadCommand
|
||||||
import net.sourceforge.argparse4j.ArgumentParsers
|
|
||||||
import net.sourceforge.argparse4j.inf.ArgumentParser
|
|
||||||
import net.sourceforge.argparse4j.inf.Namespace
|
import net.sourceforge.argparse4j.inf.Namespace
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.FileWriter
|
import java.io.FileWriter
|
||||||
|
|
||||||
@LoadCommand
|
@LoadCommand
|
||||||
object Init : ICommand {
|
object Init : AbstractCommand("Init") {
|
||||||
override val name: String = "init"
|
override val helpMessage: String = "initializes the MPT dev environment"
|
||||||
override val helpMessage: String = "initializes the MPT dev environment (currently only creates config file)"
|
|
||||||
override val parser: ArgumentParser = ArgumentParsers.newFor("Init")
|
|
||||||
.build()
|
|
||||||
.description(helpMessage)
|
|
||||||
|
|
||||||
override val needsConfig: Boolean = false
|
override val needsConfig: Boolean = false
|
||||||
override val needsModpackjson: Boolean = false
|
override val needsModpackjson: Boolean = false
|
||||||
|
@ -35,7 +29,7 @@ object Init : ICommand {
|
||||||
|
|
||||||
val asJson = File(srcDir, "modpack.json")
|
val asJson = File(srcDir, "modpack.json")
|
||||||
|
|
||||||
if (!asJson.exists()) {
|
if(!asJson.exists()) {
|
||||||
//create new file
|
//create new file
|
||||||
val writer = FileWriter(asJson)
|
val writer = FileWriter(asJson)
|
||||||
val addsc = AddonscriptJSON.create()
|
val addsc = AddonscriptJSON.create()
|
||||||
|
|
|
@ -2,35 +2,31 @@ package ley.anvil.modpacktools.commands
|
||||||
|
|
||||||
import com.jakewharton.fliptables.FlipTable
|
import com.jakewharton.fliptables.FlipTable
|
||||||
import ley.anvil.modpacktools.MPJH
|
import ley.anvil.modpacktools.MPJH
|
||||||
|
import ley.anvil.modpacktools.command.AbstractCommand
|
||||||
import ley.anvil.modpacktools.command.CommandReturn
|
import ley.anvil.modpacktools.command.CommandReturn
|
||||||
import ley.anvil.modpacktools.command.CommandReturn.Companion.success
|
import ley.anvil.modpacktools.command.CommandReturn.Companion.success
|
||||||
import ley.anvil.modpacktools.command.ICommand
|
|
||||||
import ley.anvil.modpacktools.command.LoadCommand
|
import ley.anvil.modpacktools.command.LoadCommand
|
||||||
import net.sourceforge.argparse4j.ArgumentParsers
|
|
||||||
import net.sourceforge.argparse4j.impl.Arguments.storeTrue
|
import net.sourceforge.argparse4j.impl.Arguments.storeTrue
|
||||||
import net.sourceforge.argparse4j.inf.ArgumentParser
|
import net.sourceforge.argparse4j.inf.ArgumentParser
|
||||||
import net.sourceforge.argparse4j.inf.Namespace
|
import net.sourceforge.argparse4j.inf.Namespace
|
||||||
|
|
||||||
@LoadCommand
|
@LoadCommand
|
||||||
object ListRelations : ICommand {
|
object ListRelations : AbstractCommand("ListRelations") {
|
||||||
override val name: String = "listrelations"
|
|
||||||
override val helpMessage: String = "Lists the relations of this mod pack"
|
override val helpMessage: String = "Lists the relations of this mod pack"
|
||||||
override val parser: ArgumentParser = ArgumentParsers.newFor("ListRelations")
|
|
||||||
.build()
|
override fun ArgumentParser.addArgs() {
|
||||||
.description(helpMessage)
|
addArgument("-c", "--csv")
|
||||||
.apply {
|
.help("Doesn't format as a table but instead as csv (separated by ;)")
|
||||||
addArgument("-c", "--csv")
|
.action(storeTrue())
|
||||||
.help("Doesn't format as a table but instead as csv (separated by ;)")
|
|
||||||
.action(storeTrue())
|
addArgument("-n", "--nolimit")
|
||||||
}.apply {
|
.help("does not limit the size of the authors list")
|
||||||
addArgument("-n", "--nolimit")
|
.action(storeTrue())
|
||||||
.help("does not limit the size of the authors list")
|
|
||||||
.action(storeTrue())
|
addArgument("-d", "--description")
|
||||||
}.apply {
|
.help("adds the description of relations to the list")
|
||||||
addArgument("-d", "--description")
|
.action(storeTrue())
|
||||||
.help("adds the description of relations to the list")
|
}
|
||||||
.action(storeTrue())
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun execute(args: Namespace): CommandReturn {
|
override fun execute(args: Namespace): CommandReturn {
|
||||||
val metas = MPJH.getModMetas().sortedBy {it.name}
|
val metas = MPJH.getModMetas().sortedBy {it.name}
|
||||||
|
|
|
@ -1,23 +1,17 @@
|
||||||
package ley.anvil.modpacktools.commands
|
package ley.anvil.modpacktools.commands
|
||||||
|
|
||||||
import ley.anvil.modpacktools.TERMC
|
import ley.anvil.modpacktools.TERMC
|
||||||
|
import ley.anvil.modpacktools.command.AbstractCommand
|
||||||
import ley.anvil.modpacktools.command.CommandReturn
|
import ley.anvil.modpacktools.command.CommandReturn
|
||||||
import ley.anvil.modpacktools.command.CommandReturn.Companion.success
|
import ley.anvil.modpacktools.command.CommandReturn.Companion.success
|
||||||
import ley.anvil.modpacktools.command.ICommand
|
|
||||||
import ley.anvil.modpacktools.command.LoadCommand
|
import ley.anvil.modpacktools.command.LoadCommand
|
||||||
import ley.anvil.modpacktools.runCommand
|
import ley.anvil.modpacktools.runCommand
|
||||||
import ley.anvil.modpacktools.util.fPrint
|
import ley.anvil.modpacktools.util.fPrint
|
||||||
import net.sourceforge.argparse4j.ArgumentParsers
|
|
||||||
import net.sourceforge.argparse4j.inf.ArgumentParser
|
|
||||||
import net.sourceforge.argparse4j.inf.Namespace
|
import net.sourceforge.argparse4j.inf.Namespace
|
||||||
|
|
||||||
@LoadCommand
|
@LoadCommand
|
||||||
object Shell : ICommand {
|
object Shell : AbstractCommand("Shell") {
|
||||||
override val name: String = "shell"
|
|
||||||
override val helpMessage: String = "opens a shell where mpt commands can be entered in a loop."
|
override val helpMessage: String = "opens a shell where mpt commands can be entered in a loop."
|
||||||
override val parser: ArgumentParser = ArgumentParsers.newFor("Shell")
|
|
||||||
.build()
|
|
||||||
.description(helpMessage)
|
|
||||||
|
|
||||||
override val needsConfig: Boolean = false
|
override val needsConfig: Boolean = false
|
||||||
override val needsModpackjson: Boolean = false
|
override val needsModpackjson: Boolean = false
|
||||||
|
|
Loading…
Reference in a new issue