Module: Flor::Tools::Env

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

Class Method Summary collapse

Class Method Details

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



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

def self.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



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

def self.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



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

def self.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



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

def self.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



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

def self.mk_var(*ps, opts)

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

.mkdir(*ps) ⇒ Object



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

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

.touch(*ps) ⇒ Object



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

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

.write(*ps, &block) ⇒ Object



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

def self.write(*ps, &block)

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