profig 0.08 → 0.09

Sign up to get free protection for your applications and to get access to all the features.
data/bin/profig CHANGED
@@ -11,6 +11,9 @@ def parse_args()
11
11
  OptionParser.new do |opts|
12
12
  opts.banner = 'Usage: profig'
13
13
 
14
+ opts.on('-f', '--file FILE', 'Select file') do |f|
15
+ options[:file] = f
16
+ end
14
17
  opts.on('-d', '--directory DIR', 'Select directory') do |d|
15
18
  options[:directory] = d
16
19
  end
@@ -24,10 +27,19 @@ def main()
24
27
  p opts
25
28
  p args
26
29
 
30
+ file = opts[:file]
27
31
  dir = opts[:directory]
28
- dir = '/var/lib/profig/conf.d' if dir.nil?
29
-
30
- config = Profig.load_config(dir)
32
+ if file.nil? and dir.nil?
33
+ config_path = '/var/lib/profig/conf.d'
34
+ elsif file.nil?
35
+ config_path = dir
36
+ elsif dir.nil?
37
+ config_path = file
38
+ else
39
+ config_path = [file,dir]
40
+ end
41
+
42
+ config = Profig.load_config(config_path)
31
43
  Profig.run(config)
32
44
  end
33
45
 
data/lib/profig/config.rb CHANGED
@@ -10,6 +10,7 @@ class Item
10
10
 
11
11
  def initialize(name, opts)
12
12
  @name = name
13
+ opts = {} if opts.nil?
13
14
  @opts = opts
14
15
  end
15
16
  end
@@ -38,7 +39,7 @@ class Section
38
39
  end
39
40
 
40
41
 
41
- def self.load_config_yaml(directory)
42
+ def self.load_config_directory(directory)
42
43
  # do a stable ordering by alphabetical
43
44
  files = Dir.glob("#{directory}/*").sort
44
45
  confs = []
@@ -91,9 +92,12 @@ def self.yaml_to_sections(yaml)
91
92
  return section_acc
92
93
  end
93
94
 
94
-
95
- def self.load_config(directory)
96
- confs = load_config_yaml(directory)
95
+ def self.load_config(path)
96
+ if File.file? path then
97
+ confs = [YAML.load_file(path)]
98
+ elsif File.directory? path then
99
+ confs = load_config_directory(path)
100
+ end
97
101
  return yaml_to_sections(confs)
98
102
  end
99
103
 
@@ -2,7 +2,8 @@
2
2
  module Profig
3
3
  # Handlers for various installers / package managers
4
4
 
5
-
5
+ # Package Installers
6
+ #
6
7
  def self.handle_cabal(pkg_name, opts)
7
8
  cmd = "cabal install #{package_name}"
8
9
  system cmd
@@ -29,4 +30,15 @@ def self.handle_yum(pkg_name, opts)
29
30
  end
30
31
 
31
32
 
33
+ # Source Installers
34
+ #
35
+ def self.handle_rake(path, opts)
36
+ pwd = Dir.pwd
37
+ Dir.chdir path
38
+ target = opts['target']
39
+ cmd = "rake #{target}"
40
+ system cmd
41
+ Dir.chdir pwd
42
+ end
43
+
32
44
  end # module
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: profig
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 8
9
- version: "0.08"
8
+ - 9
9
+ version: "0.09"
10
10
  platform: ruby
11
11
  authors:
12
12
  - Matthew Graham
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-07-31 00:00:00 -04:00
17
+ date: 2011-08-06 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies: []
20
20