我想实现以下目标:
构建一个Ruby命令行实用程序,它注册一些set_trace_func事件,然后调用你传递给它的任何ruby-executable参数(比如说rspec
).然后,已注册的事件将继承到调用的命令.
伪代码myutility
:
set_trace_func() # Set some events here exec(ARGV.join(' ')) # Execute argument passed
然后打电话给myutility rspec
.
我的目标是在任意命令上实际注册跟踪点(只要它们使用ruby垫片).
我尝试过的事情:
exec
由于显而易见的原因(它完全取代了这个过程)不起作用.
popen,系统,反引号.这些开始一个独立的过程.
我可以使用某种形式的IPC,但它假设控制我用我的实用程序调用的命令.不是这种情况; 我想接受任意Ruby可执行参数.
这可能吗?我没有密切关注的一件事是drb,但这也假设对外界争论有些干扰.