我刚看了一下new scala.sys和scala.sys.processpackage,看看这里有什么有用的东西.但是,我完全失去了.
有没有人举例说明如何实际启动流程?
而且,这对我来说最有趣:你能分离进程吗?
当父进程结束并且是Ant的弱点之一时,分离的进程将继续运行.
更新:
分离是什么似乎有些混乱.从我当前的项目中获得真实的实例.一次使用z-Shell,一次使用TakeCommand:
Z-外壳:
if ! ztcp localhost 5554; then
echo "[ZSH] Start emulator"
emulator \
-avd Nexus-One \
-no-boot-anim \
1>~/Library/Logs/${PROJECT_NAME}-${0:t:r}.out \
2>~/Library/Logs/${PROJECT_NAME}-${0:t:r}.err &
disown
else
ztcp -c "${REPLY}"
fi;
Run Code Online (Sandbox Code Playgroud)
接收指令:
IFF %@Connect[localhost 5554] lt 0 THEN
ECHO [TCC] Start emulator
DETACH emulator -avd Nexus-One -no-boot-anim
ENDIFF
Run Code Online (Sandbox Code Playgroud)
在这两种情况下都是火灾和遗忘,模拟器启动并且即使在脚本结束后也将继续运行.当然,必须两次编写脚本是浪费.所以我现在考虑使用Scala进行统一的进程处理,而不使用cygwin或xml语法.
我正在编写一个添加命令的SBT插件,并希望用户能够通过在其中设置变量来配置此命令build.sbt.实现这一目标的最简单方法是什么?
以下是插件外观的简化示例:
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
}
}
Run Code Online (Sandbox Code Playgroud)
我希望有人能够将跟随添加到他们的build.sbt文件中:
newSetting := "light"
Run Code Online (Sandbox Code Playgroud)
如何String从myCommand上面的命令中将其作为变量提供?