In meiner build.sbt möchte ich eine Aufgabe mit Eingabeparametern haben, die eine main
Methode in meinem Code aufrufen, aber ich möchte die Parameter vor dem Aufruf der Methode geparst haben.Wie kombiniere ich Eingabe-Parser mit fullRunInputTask?
Dies ist die InputKey Definition:
val clearDatabase = inputKey[Unit]("Clear database, arguments: endpoint user password")
Ein Parser ich verwenden möchte:
val databaseTaskParser = sbt.Def.spaceDelimited("endpoint username password").map(_.toList).map {
case List(endpoint) => (endpoint, "", "")
case List(endpoint, username, password) => (endpoint, username, password)
case _ =>
sys.error("Supported arguments: \"endpoint\" or \"endpoint username password\"")
}
Und dann weiß ich, dass Eingabeargumente an die Haupt-Methode, die ich verwenden müssen passieren fullRunInputTask
mit dem InputKey parametrisiert oben definiert:
fullRunInputTask(clearDatabase, Compile, "my.code.ClearDatabaseTask")
Nun, wie kann ich die c kombinieren alle zu fullRunInputTask
mit der databaseTaskParser
(um Fehler anzuzeigen, wenn ein falscher Parametersatz angegeben wird) noch vor die main
Methode heißt?