Module: Mkdirs

Defined in:
lib/mkdirs.rb,
lib/mkdirs/version.rb

Defined Under Namespace

Classes: Spec

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.apply(yml, root_dir, verbose = true) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/mkdirs.rb', line 16

def self.apply(yml, root_dir, verbose = true)
  specs = load(yml)
  specs.each do |spec|
    path = File.join(root_dir, spec.path)
    dir = File.dirname(path)
    unless File.exists?(dir)
      puts "mkdir -p #{dir}".colorize(:green) if verbose
      mkdir_p(dir)
    end
    if spec.cmd
      if not File.exists?(path)
        Dir.chdir(dir) do
          puts spec.cmd.colorize(:green) if verbose
          system(spec.cmd)
          exit($?.exitstatus) if $?.exitstatus != 0
        end
      end
    else
      puts "mkdir -p #{path}".colorize(:green) if verbose
      mkdir_p(path)
    end
  end
end

.apply_filename(filename, root_dir) ⇒ Object



12
13
14
# File 'lib/mkdirs.rb', line 12

def self.apply_filename(filename, root_dir)
  apply(File.read(filename), root_dir)
end

.load(yml) ⇒ Object



40
41
42
43
# File 'lib/mkdirs.rb', line 40

def self.load(yml)
  dirs = YAML.load(yml)
  flatten(dirs)
end