我可以使用Meteor Shell运行单线程吗?

时间:2015-02-08 17:21:22

标签: meteor

当我开发有用的单行程序时,能够运行meteor shell,将其传递给单行程序并期望它在完成后退出是很方便的。像这样的一些语法,也许?

meteor shell -e 'Meteor.users.remove({})'

这是功能请求,还是已经存在?

补充:我想将这些脚本中的几个添加到package.json,以便项目中的所有开发人员共享这些脚本。

1 个答案:

答案 0 :(得分:8)

这是一个用于编写Meteor shell脚本的Expect程序。您可以运行单独的文件或直接运行命令。用法:

./mshell -f runThisFile.js
./mshell -e 'console.log("foo")'

这是代码(许可证:MIT)。保存到文件(mshell或您选择的任何内容)并生成可执行文件:

#!/usr/bin/expect --
set timeout 3
spawn meteor shell
expect "> "
set firstArg [lindex $argv 0]
set secondArg [lindex $argv 1]
if { $firstArg == "-f" } {
  send [exec cat $secondArg]
  send "\n"
} elseif { $firstArg == "-e" } {
  send "$secondArg\n"
}
expect "true"
send "\x04"
expect "Shell exiting...\n"

在Ubuntu上,我运行sudo apt-get install expect以在运行此程序之前安装Expect。

显然,我们宁愿运行脚本或单行内置meteor shell,所以我们只考虑这是一个概念验证。