30 lines
722 B
Ruby
30 lines
722 B
Ruby
module Hobo
|
|
class Env
|
|
HOME = File.expand_path('~/.hobo')
|
|
CONFIG = { File.join(HOME, 'config.yml') => '/config/default.yml' }
|
|
ENSURE = {
|
|
:files => CONFIG.merge({}), #additional files go mhia!
|
|
:dirs => [HOME] #additional dirs go mhia!
|
|
}
|
|
|
|
def ensure_directories
|
|
ENSURE[:dirs].each do |name|
|
|
Dir.mkdir(name) unless File.exists?(name)
|
|
end
|
|
end
|
|
|
|
def ensure_files
|
|
ENSURE[:files].each do |target, default|
|
|
File.copy(PROJECT_ROOT + default, target) unless File.exists?(target)
|
|
end
|
|
end
|
|
|
|
def load_config
|
|
ensure_directories
|
|
ensure_files
|
|
parsed = yield(CONFIG.keys.first)
|
|
Config.from_hash!(parsed)
|
|
end
|
|
end
|
|
end
|