class DockerClone
Public Class Methods
new(options = {})
click to toggle source
# File lib/docker_clone.rb, line 11 def initialize(options = {}) raise ArgumentError.new("No Config File Path Given.") if !options[:config_file_path] @config_file_path = full_path(options[:config_file_path]) @working_dir = options[:working_dir] || DEFAULT_WORKING_DIR get_config end
Public Instance Methods
clone_repos()
click to toggle source
# File lib/docker_clone.rb, line 18 def clone_repos Dir.chdir(@working_dir) do @docker_clone_config["repos"].each do |repo| clone_repo(repo) end end end
Private Instance Methods
clone_repo(repo)
click to toggle source
# File lib/docker_clone.rb, line 53 def clone_repo(repo) url, name = repo["url"], repo["name"] raise ArgumentError.new("No URL or name given for your repo. #{url} #{name}") if !url || !name `git clone #{url} #{name}` end
full_path(pathname)
click to toggle source
# File lib/docker_clone.rb, line 28 def full_path(pathname) path = Pathname.new(pathname) path.expand_path end
get_config()
click to toggle source
# File lib/docker_clone.rb, line 47 def get_config @docker_clone_config ||= read_docker_file rescue print_docker_clone_error_and_exit end
print_docker_clone_error(path)
click to toggle source
# File lib/docker_clone.rb, line 38 def print_docker_clone_error(path) raise ArgumentError.new("No corresponding config file, looking for #{path}") end
print_docker_clone_error_and_exit()
click to toggle source
# File lib/docker_clone.rb, line 42 def print_docker_clone_error_and_exit print_docker_clone_error(@config_file_path) exit(false) end
read_docker_file()
click to toggle source
# File lib/docker_clone.rb, line 33 def read_docker_file file = File.read(@config_file_path) YAML.load(file) end