代码之家  ›  专栏  ›  技术社区  ›  Eric Lubow

重定向Capistrano的输出

  •  0
  • Eric Lubow  · 技术社区  · 15 年前

    我有一个Capistrano deploy文件(Capfile),它相当大,包含一些名称空间,并且通常已经包含了很多信息。我的最终目标是,使用tindergem,将整个部署的输出粘贴到Campfire中。我已经准备好点火装置了。

    output << capture 'foocommand'
    

    具体地说,我希望将该文件中任何部署的输出捕获到一个变量中(除了将其放入STDOUT以便可以看到它之外),然后将该变量中的输出传递到一个名为 notify_campfire . 自从 通知营火

    2 回复  |  直到 15 年前
        1
  •  1
  •   Giacomo1968 Arvind    8 年前

    我建议不要使用Capistrano记录器,而是使用unix提供的功能和管道:

    cap deploy | my_logger.rb
    

    在这里,记录器读取STDIN和STDOUT以及这两个记录,并将其通过管道传回相应的流。

    另一种选择是 Engineyard cap recipies have a logger 如果确实需要编辑代码,这可能是一个有用的参考,但我建议不要这样做。

        2
  •  1
  •   Dale Campbell    15 年前

    %x .

    # ...in your Rakefile...
    task :deploy_and_notify do
      output = %x[ cap deploy ]  # Run your deploy task here.
      notify_campfire(output)
      puts output                # Echo the output.
    end