module Flor::Tools::Env

Public Class Methods

make(path, envname=nil, opts={}) click to toggle source
# 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) click to toggle source

protected, somehow

# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# File lib/flor/tools/env.rb, line 73
def self.mkdir(*ps); FileUtils.mkdir(File.join(*ps.compact)); end
touch(*ps) click to toggle source
# File lib/flor/tools/env.rb, line 74
def self.touch(*ps); FileUtils.touch(File.join(*ps.compact)); end
write(*ps, &block) click to toggle source
# 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