module Rgdev

Provides a nice API wrapping the duckinator/rgdev Docker image.

Public API:

Rgdev.run(cmd)
Rgdev.reset()

Constants

Options
RGDEV_HOME
VERSION

Public Class Methods

_parse_args(argv) click to toggle source
# File lib/rgdev.rb, line 28
def self._parse_args(argv)
  argv = argv.dup

  args = Options.new(false, false, false, nil)

  opt_parser = OptionParser.new do |opts|
    opts.banner = 'Usage: rgdev [--reset|--version|COMMAND]'

    opts.on('--version', 'Show version information and exit.') do
      args.version = true
    end

    opts.on('--reset', 'Remove docker volumes used for this directory.') do
      args.reset = true
    end

    opts.on('-h', '--help', 'Print this help text.') do
      args.help = true
    end
  end

  opt_parser.parse!(argv)
  args.command = argv

  [args, opt_parser]
end
reset() click to toggle source
# File lib/rgdev.rb, line 22
def self.reset
  exec "docker volume rm #{RGDEV_HOME}"
end
run(cmd) click to toggle source
# File lib/rgdev.rb, line 15
def self.run(cmd)
  volumes = "-v #{RGDEV_HOME}:/home/developer:z -v #{Dir.pwd}:#{Dir.pwd}:z"
  uid     = Process.uid

  exec "docker run --rm -it -u #{uid} #{volumes} -w #{Dir.pwd} duckinator/rgdev #{cmd.join(' ')}"
end