class Dash::Session
Attributes
image[RW]
Public Instance Methods
dir_exists?(dir)
click to toggle source
# File lib/dash/session.rb, line 53 def dir_exists?(dir) #run_in_docker "if test -d #{dir}; then echo 'exist'; fi " end
dispatch(str)
click to toggle source
# File lib/dash/session.rb, line 70 def dispatch(str) parts = str.split(" ") name = parts[0] args = parts[1..-1] if builtin?(name) dispatch_builtin(name,*args) else run_in_docker(str) end end
prompt()
click to toggle source
# File lib/dash/session.rb, line 82 def prompt "#{image} | #{current_dir} ~> " end
run!()
click to toggle source
# File lib/dash/session.rb, line 92 def run! print prompt loop do line = STDIN.gets run_line line end end
run_in_docker(cmd)
click to toggle source
# File lib/dash/session.rb, line 57 def run_in_docker(cmd) #puts "RID: current_dir: #{current_dir}, cmd: #{cmd}" raise "no image" unless image.present? cmd = "docker run -w #{current_dir} #{image} #{cmd}" puts "RID: #{cmd}" pid = fork do exec cmd end Process.wait pid end
run_line(line)
click to toggle source
# File lib/dash/session.rb, line 86 def run_line(line) res = dispatch(line) #puts res if res.present? print prompt end