是否可以从 Thor 脚本内部调用 Git 或其他命令行工具?

发布于 2024-10-14 18:14:42 字数 204 浏览 2 评论 0原文

我发现我经常在为 Rails 3 应用程序进行 git 提交之前和之后运行一系列例行“清理”任务。

我正在考虑将这些东西放入 Thor 脚本中,但我一直无法弄清楚的一件事是如何使用 Thor(或 Rake)来调用系统上的其他工具。

是否可以从 Thor 或 Rake 脚本调用像 git log 这样的命令,如果可以的话,那是什么样子的?

谢谢!

I find that I'm often running a sequence of routine 'cleanup' tasks before and after I make a git commit for my Rails 3 app.

I was thinking about putting these things into a Thor script, but one thing I haven't been able to figure out is how to use Thor (or Rake) to call other tools on the system.

Is it possible to call a command like git log from a Thor or Rake script, and if so what does that look like?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

烟若柳尘 2024-10-21 18:14:42

只需 shell out:

result = %x(git log)
puts result

或者

system('git log')

如果您只想将输出传递到终端。

还有 grit gem 将 Git 工具抽象为 Ruby 库:

require 'grit'
repo = Grit::Repo.new("/path/to/repo")
repo.commits.each do |commit|
  puts "#{commit.id}: #{commit.message}"
end

Just shell out:

result = %x(git log)
puts result

or

system('git log')

if you just want to pass the output to the terminal.

There is also the grit gem that abstracts the Git tools into a Ruby library:

require 'grit'
repo = Grit::Repo.new("/path/to/repo")
repo.commits.each do |commit|
  puts "#{commit.id}: #{commit.message}"
end
夏の忆 2024-10-21 18:14:42

不要忘记这些只是 Ruby 文件,因此您也可以使用 Ruby 库中的所有内容,例如 %x[rm -rf /], system("rm -rf /") 和 `rm -rf /` 也可以在这些脚本中访问。

Don't forget that those are just Ruby files, so you can use everything in the Ruby arsenal there as well, so things like %x[rm -rf /], system("rm -rf /") and `rm -rf /` are accessible in those scripts too.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文