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