2017-03-31 57 views
0

我不断在终端写这些命令,但我不知道如何为它编写脚本。我能做什么?这些是我会连续写在bash和irb上的命令:如何为这些bash和ruby命令编写一个bin /脚本?

# in bash 
docker exec -it <some_container> bash 
irb 

# now everything below is a ruby command  
require 'bundler' 
Bundler.require 

required_load_path = File.expand_path(".") 
$LOAD_PATH.unshift(required_load_path) unless $LOAD_PATH.include?(required_load_path) 

Dir['config/*.rb'].each { |file| load file } 

ENV["RAILS_ENV"] = 'development' 
... 

我有一个使用bin文件夹的ruby项目。我可以写什么脚本来自动执行所有这些?我目前遇到了麻烦,因为当我运行docker exec部分时... irb部分由于某种原因而未运行。

+1

看一下cli工具,比如slop或thor。然后可以通过命令行直接调用这个'ruby/script/location参数' – engineersmnky

回答

0

如果你只是想执行上泊坞窗Ruby脚本,一个替代方案是创建一个你想要的命令的ruby文件:

# rubyscript.rb 
puts 'hello' 
# ... 

并与码头工人高管称之为:

docker exec -it <imagename> ruby rubyscript.rb 

但是,如果您想运行某些内容并保留在REPL中以执行更多内容,则可以在脚本中调用pry:

# rubyscript.rb 
puts 'hello' 
# ... 
require 'pry' 
pry 

这将执行你的东西,并保持在pry中,在Docker容器上执行。