config.rb 1.63 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#
# Copyright:: Copyright (c) 2012 Opscode, Inc.
# License:: Apache License, Version 2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# 
#     http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

18
19
20
21
22
23
24
require 'singleton'

module Omnibus

  class Config
    include Singleton

25
26
27
    def self.default_values
      @default_values ||= []
    end
28

29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
    def self.configurable(name, opts={})
      attr_accessor name
      default_values << [name, opts[:default]] if opts[:default]
    end

    def reset!
      self.class.default_values.each do |option, default|
        send("#{option}=", default)
      end
    end

    def initialize
      reset!
    end

44
45
46
    configurable :cache_dir, :default => "/var/cache/omnibus/cache"
    configurable :source_dir, :default => "/var/cache/omnibus/src"
    configurable :build_dir, :default => "/var/cache/omnibus/build"
47
    configurable :package_dir, :default => "/var/cache/omnibus/pkg"
48
    configurable :install_dir, :default => "/opt/chef"
49
50
51
52
53
54

    configurable :use_s3_caching, :default => false

    configurable :s3_bucket
    configurable :s3_access_key
    configurable :s3_secret_key
55
56
57
58
59
60
61
62
63
64
65
66
  end

  def self.config
    Config.instance
  end

  def self.configure
    yield config
  end

end