Module: Flor::Tools::Env

Defined in:
lib/flor/tools/env.rb

Class Method Summary collapse

Class Method Details

.make(path, envname = nil, opts = {}) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/flor/tools/env.rb', line 13

def make(path, envname=nil, opts={})

  if envname.is_a?(Hash)
    opts = envname
    envname = nil
  end

  opts[:env] = envname || 'production'
  opts[:sto_uri] ||= 'sqlite://tmp/dev.db'
  opts[:gitkeep] = true unless opts.has_key?(:gitkeep)

  mkdir(path, envname) if envname

  mk_etc(path, envname, opts)
  mk_lib(path, envname, opts)
  mk_usr(path, envname, opts)
  mk_var(path, envname, opts)
end

.mk_etc(*ps, opts) ⇒ Object

protected, somehow



34
35
36
37
38
39
40
41
42
43
44
# File 'lib/flor/tools/env.rb', line 34

def mk_etc(*ps, opts)

  mkdir(*ps, 'etc')
  mkdir(*ps, 'etc', 'variables')
  touch(*ps, 'etc', 'variables', '.gitkeep') if opts[:gitkeep]

  write(*ps, 'etc', 'conf.json') do
    "env: #{opts[:env]}\n" +
    "sto_uri: #{opts[:sto_uri].inspect}"
  end
end

.mk_lib(*ps, opts) ⇒ Object



46
47
48
49
50
51
52
53
# File 'lib/flor/tools/env.rb', line 46

def mk_lib(*ps, opts)

  mkdir(*ps, 'lib')
  mkdir(*ps, 'lib', 'flows')
  touch(*ps, 'lib', 'flows', '.gitkeep') if opts[:gitkeep]
  mkdir(*ps, 'lib', 'taskers')
  touch(*ps, 'lib', 'taskers', '.gitkeep') if opts[:gitkeep]
end

.mk_usr(*ps, opts) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/flor/tools/env.rb', line 55

def mk_usr(*ps, opts)

  mkdir(*ps, 'usr')

  if opts[:acme] == false
    touch(*ps, 'usr', '.gitkeep') if opts[:gitkeep]
  else
    mkdir(*ps, 'usr', 'com.acme')
    mk_etc(*ps, 'usr', 'com.acme', opts)
    mk_lib(*ps, 'usr', 'com.acme', opts)
  end
end

.mk_var(*ps, opts) ⇒ Object



68
69
70
71
72
73
# File 'lib/flor/tools/env.rb', line 68

def mk_var(*ps, opts)

  mkdir(*ps, 'var')
  mkdir(*ps, 'var', 'log')
  touch(*ps, 'var', 'log', '.gitkeep') if opts[:gitkeep]
end

.mkdir(*ps) ⇒ Object



75
# File 'lib/flor/tools/env.rb', line 75

def mkdir(*ps); FileUtils.mkdir(File.join(*ps.compact)); end

.touch(*ps) ⇒ Object



76
# File 'lib/flor/tools/env.rb', line 76

def touch(*ps); FileUtils.touch(File.join(*ps.compact)); end

.write(*ps, &block) ⇒ Object



78
79
80
81
# File 'lib/flor/tools/env.rb', line 78

def write(*ps, &block)

  File.open(File.join(*ps.compact), 'wb') { |f| f.write(block.call) }
end