J'écris un plugin SBT qui ajoute une commande et souhaite que les utilisateurs puissent configurer cette commande en définissant des variables dans leur build.sbt
. Quel est le moyen le plus simple d'y parvenir?SBT plugin - Configuration définie par l'utilisateur pour la commande via leur build.sbt
Voici un exemple simplifié de ce que le plug-in ressemble à:
import sbt.Keys._
import sbt._
object MyPlugin extends Plugin {
override lazy val settings = Seq(commands += Command.args("mycommand", "myarg")(myCommand))
def myCommand = (state: State, args: Seq[String]) => {
//Logic for command...
state
}
}
Je voudrais que quelqu'un soit en mesure d'ajouter le suivi de leur dossier build.sbt
:
newSetting := "light"
Comment puis-je rendre ceci disponible comme variable String
depuis l'intérieur de la commande myCommand
ci-dessus?
Merci!Je vais essayer ça. – theon
J'ai essayé, mais je n'ai pas eu beaucoup de joie. TBH, je ne suis pas sûr de ce qu'est un 'TaskKey', donc je pense que je dois en lire plus à ce sujet. J'ai édité la question pour être plus précis sur mon cas d'utilisation, qui est un plugin SBT qui ajoute un 'Command' SBT et ajouté un exemple de code de ce que j'ai actuellement. Faites-moi savoir si vous avez des idées où je pourrais me tromper. – theon
Trouvé une assez bonne documentation [ici] (http://www.scala-sbt.org/release/docs/Detailed-Topics/Tasks.html#define-the-key) et les tâches et les commandes semblent assez similaires. (Également mentionné [ici] (https://groups.google.com/forum/#!msg/simple-build-tool/vgxkDSgOnlc/BQyKT7nOYnQJ)) Je pense que demain j'essaierai de migrer loin d'utiliser 'Command's pour en utilisant 'Task's. – theon