profig 0.06 → 0.07
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/profig +1 -2
- data/lib/profig/install.rb +32 -0
- data/lib/profig/linux.rb +24 -2
- data/lib/profig/main.rb +5 -5
- metadata +7 -11
- data/lib/profig/debian.rb +0 -9
- data/lib/profig/haskell.rb +0 -11
- data/lib/profig/python.rb +0 -11
- data/lib/profig/ruby.rb +0 -11
- data/lib/profig/ubuntu.rb +0 -56
data/bin/profig
CHANGED
@@ -0,0 +1,32 @@
|
|
1
|
+
|
2
|
+
module Profig
|
3
|
+
# Handlers for various installers / package managers
|
4
|
+
|
5
|
+
|
6
|
+
def self.handle_cabal(pkg_name, opts)
|
7
|
+
cmd = "cabal install #{package_name}"
|
8
|
+
system cmd
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.handle_deb(pkg_name, opts)
|
12
|
+
cmd = "apt-get install -y #{pkg_name}"
|
13
|
+
system cmd
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.handle_egg(egg_name, opts)
|
17
|
+
cmd = "pip install #{egg_name}"
|
18
|
+
system cmd
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.handle_gem(gem_name, opts)
|
22
|
+
cmd = "gem install #{gem_name}"
|
23
|
+
system cmd
|
24
|
+
end
|
25
|
+
|
26
|
+
def self.handle_yum(pkg_name, opts)
|
27
|
+
cmd = "yum install -y #{pkg_name}"
|
28
|
+
system cmd
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
end # module
|
data/lib/profig/linux.rb
CHANGED
@@ -4,7 +4,29 @@ require 'fileutils'
|
|
4
4
|
module Profig
|
5
5
|
|
6
6
|
|
7
|
-
def self.
|
7
|
+
def self.handle_user(user_name, opts)
|
8
|
+
if not user_name.instance_of? String
|
9
|
+
raise 'Unknown user type'
|
10
|
+
elsif not /[a-zA-Z][a-zA-Z0-9_]+/.match user_name
|
11
|
+
raise 'Invalid user format'
|
12
|
+
end
|
13
|
+
|
14
|
+
cmd = "adduser -q --system --no-create-home"
|
15
|
+
cmd += " --disabled-password --disabled-login #{user_name}"
|
16
|
+
system cmd
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.handle_group(group_name, opts)
|
20
|
+
if not group_name.instance_of? String
|
21
|
+
raise 'Unknown group definition'
|
22
|
+
end
|
23
|
+
|
24
|
+
cmd = "addgroup -q --system #{group_name}"
|
25
|
+
system(cmd)
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
def self.handle_file(name, opts)
|
8
30
|
src = opts['source']
|
9
31
|
owner, group = split_owner(opts['owner'])
|
10
32
|
mode = opts['mode']
|
@@ -15,7 +37,7 @@ def self.handle_linux_file(name, opts)
|
|
15
37
|
end
|
16
38
|
|
17
39
|
|
18
|
-
def self.
|
40
|
+
def self.handle_dir(name, opts)
|
19
41
|
owner, group = split_owner(opts['owner'])
|
20
42
|
mode = opts['mode']
|
21
43
|
|
data/lib/profig/main.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
require 'profig/
|
2
|
-
|
1
|
+
require 'profig/install'
|
2
|
+
require 'profig/linux'
|
3
3
|
|
4
4
|
module Profig
|
5
5
|
|
@@ -12,7 +12,7 @@ def self.run_item_handler(handler, items)
|
|
12
12
|
end
|
13
13
|
|
14
14
|
|
15
|
-
def self.run(
|
15
|
+
def self.run(sections)
|
16
16
|
users_groups = `id -G`.split()
|
17
17
|
if not users_groups.include? "0"
|
18
18
|
# this should be made an exception at some point
|
@@ -22,9 +22,9 @@ def self.run(os, sections)
|
|
22
22
|
|
23
23
|
sections.each do |section|
|
24
24
|
type = section.type
|
25
|
-
section_handler_name = "handle_#{type}
|
25
|
+
section_handler_name = "handle_#{type}_section"
|
26
26
|
#item_handler_name = "handle_#{type}_for_#{os}"
|
27
|
-
item_handler_name = "handle_#{
|
27
|
+
item_handler_name = "handle_#{type}"
|
28
28
|
|
29
29
|
# first check if there's a section handler for this type
|
30
30
|
# a section handler takes all items at once
|
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:
|
4
|
+
hash: 5
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: "0.
|
8
|
+
- 7
|
9
|
+
version: "0.07"
|
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:
|
17
|
+
date: 2011-07-30 00:00:00 -04:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|
@@ -29,14 +29,10 @@ extra_rdoc_files: []
|
|
29
29
|
|
30
30
|
files:
|
31
31
|
- bin/profig
|
32
|
-
- lib/profig/debian.rb
|
33
|
-
- lib/profig/ubuntu.rb
|
34
|
-
- lib/profig/config.rb
|
35
|
-
- lib/profig/haskell.rb
|
36
|
-
- lib/profig/ruby.rb
|
37
|
-
- lib/profig/main.rb
|
38
|
-
- lib/profig/python.rb
|
39
32
|
- lib/profig/linux.rb
|
33
|
+
- lib/profig/main.rb
|
34
|
+
- lib/profig/config.rb
|
35
|
+
- lib/profig/install.rb
|
40
36
|
has_rdoc: true
|
41
37
|
homepage: http://github.com/mdg/profig
|
42
38
|
licenses: []
|
data/lib/profig/debian.rb
DELETED
data/lib/profig/haskell.rb
DELETED
data/lib/profig/python.rb
DELETED
data/lib/profig/ruby.rb
DELETED
data/lib/profig/ubuntu.rb
DELETED
@@ -1,56 +0,0 @@
|
|
1
|
-
require 'profig/linux'
|
2
|
-
require 'profig/debian'
|
3
|
-
require 'profig/haskell'
|
4
|
-
require 'profig/python'
|
5
|
-
require 'profig/ruby'
|
6
|
-
|
7
|
-
module Profig
|
8
|
-
|
9
|
-
|
10
|
-
def self.handle_ubuntu_group(group_name, opts)
|
11
|
-
if not group_name.instance_of? String
|
12
|
-
raise 'Unknown group definition'
|
13
|
-
end
|
14
|
-
|
15
|
-
cmd = "addgroup -q --system #{group_name}"
|
16
|
-
system(cmd)
|
17
|
-
end
|
18
|
-
|
19
|
-
def self.handle_ubuntu_user(user_name, opts)
|
20
|
-
if not user_name.instance_of? String
|
21
|
-
raise 'Unknown user type'
|
22
|
-
elsif not /[a-zA-Z][a-zA-Z0-9_]+/.match user_name
|
23
|
-
raise 'Invalid user format'
|
24
|
-
end
|
25
|
-
|
26
|
-
cmd = "adduser -q --system --no-create-home"
|
27
|
-
cmd += " --disabled-password --disabled-login #{user_name}"
|
28
|
-
system cmd
|
29
|
-
end
|
30
|
-
|
31
|
-
def self.handle_ubuntu_cabal(pkg_name, opts)
|
32
|
-
Profig.handle_cabal(pkg_name, opts)
|
33
|
-
end
|
34
|
-
|
35
|
-
def self.handle_ubuntu_deb(pkg_name, opts)
|
36
|
-
Profig.handle_debian_deb(pkg_name, opts)
|
37
|
-
end
|
38
|
-
|
39
|
-
def self.handle_ubuntu_egg(egg_name, opts)
|
40
|
-
Profig.handle_egg(egg_name, opts)
|
41
|
-
end
|
42
|
-
|
43
|
-
def self.handle_ubuntu_gem(gem_name, opts)
|
44
|
-
Profig.handle_gem(gem_name, opts)
|
45
|
-
end
|
46
|
-
|
47
|
-
def self.handle_ubuntu_dir(name, opts)
|
48
|
-
Profig.handle_linux_dir(name, opts)
|
49
|
-
end
|
50
|
-
|
51
|
-
def self.handle_ubuntu_file(name, opts)
|
52
|
-
Profig.handle_linux_file(name, opts)
|
53
|
-
end
|
54
|
-
|
55
|
-
|
56
|
-
end # module
|