scala - SBT: Override sbt run task in multi project build.sb -


i want override default behaviour of run task in order preprocess arguments passed sbt command , call run task on specific subproject different arguments (depending on custom logic). that's sample of build.sbt file:

lazy val core = (project in file("core")) lazy val bar = (project in file("bar")) lazy val foo = (project in file("foo")) run := runner.buildruntask(bar, foo).value.evaluated 

the buildruntask override task new implementation. here code:

    def buildruntask(runnableprojects:project*) : initialize[inputtask[unit]] =      def.inputtask {          val args: seq[string] = spacedelimited("<arg>").parsed         val availableprojects = runnableprojects.map(_.id).mkstring(",")         if (args.length == 0) throw new illegalstateexception(s"you need specify valid command. available commands are: '$availableprojects'")          val command = args head         val project = runnableprojects.find(_.id == command)           .getorelse(throw new illegalstateexception(s"invalid command '$command'. available command are: $availableprojects"))          val newargs = transformargs(args.rest)          //todo: how can compile , execute run task project passed argument? want project.runtask(newargs) ?     } 

do have suggestion?

thanks!

regards

gianluca


Comments

Popular posts from this blog

javascript - jQuery: Add class depending on URL in the best way -

caching - How to check if a url path exists in the service worker cache -

Redirect to a HTTPS version using .htaccess -