shnell 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.1
1
+ 0.4.0
@@ -2,13 +2,17 @@ require 'filander'
2
2
  require 'shnell/config'
3
3
  require 'shnell/actions/ftp'
4
4
  require 'shnell/actions/database'
5
+ require 'shnell/actions/gem_install'
6
+ require 'shnell/actions/git_clone'
5
7
  require 'shnell/backup'
6
8
 
7
9
  module Shnell
8
10
  include Config
9
11
  include Filander
10
- include Ftp
11
- include Database
12
+ include Actions::Ftp
13
+ include Actions::Database
14
+ include Actions::GemInstall
15
+ include Actions::GitClone
12
16
  include Backup
13
17
 
14
18
  class << self
@@ -1,4 +1,4 @@
1
- module Shnell
1
+ module Shnell::Actions
2
2
  module Database
3
3
  include Config
4
4
  include Filander::Base
@@ -1,6 +1,6 @@
1
1
  require 'net/ftp'
2
2
 
3
- module Shnell
3
+ module Shnell::Actions
4
4
  module Ftp
5
5
  include Config
6
6
  include Filander::Base
@@ -0,0 +1,30 @@
1
+ module Shnell::Actions
2
+ module GemInstall
3
+ include Filander::Base
4
+
5
+ def gem_install(name, version = nil)
6
+ if version
7
+ gem_install_args = "-v=#{version} #{name}"
8
+ report_name = "#{name} #{version}"
9
+ else
10
+ gem_install_args = name
11
+ report_name = name
12
+ end
13
+ if gem_exists?(name, version)
14
+ report :installed, 'gem %s' % report_name
15
+ else
16
+ report :install, 'gem %s' % report_name
17
+ unless Filander.behavior == :pretend
18
+ system "gem install #{gem_install_args}"
19
+ end
20
+ end
21
+ end
22
+ alias :install_gem :gem_install
23
+
24
+ private
25
+
26
+ def gem_exists?(name, version)
27
+ Gem.path.map { |p| File.join(p, 'gems', "#{name}-#{version || '*'}") }.any? { |p| Dir[p].size > 0 }
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,12 @@
1
+ module Shnell::Actions
2
+ module GitClone
3
+ include Filander::Base
4
+
5
+ def git_clone(repository, destination)
6
+ report :clone, repository
7
+ unless Filander.behavior == :pretend
8
+ system "git clone #{repository} #{join_destination(destination)}"
9
+ end
10
+ end
11
+ end
12
+ end
@@ -6,7 +6,7 @@ module Shnell
6
6
 
7
7
  class BackupScript
8
8
  include Config
9
- include Ftp
9
+ include Actions::Ftp
10
10
 
11
11
  class << self
12
12
  def backup(name, &block)
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shnell
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 15
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
- - 3
8
- - 1
9
- version: 0.3.1
8
+ - 4
9
+ - 0
10
+ version: 0.4.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - Johannes J. Schmidt
@@ -14,16 +15,18 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-04-09 00:00:00 +02:00
18
+ date: 2010-07-11 00:00:00 +02:00
18
19
  default_executable: shnell
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
22
  name: commander
22
23
  prerelease: false
23
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
24
26
  requirements:
25
27
  - - ">="
26
28
  - !ruby/object:Gem::Version
29
+ hash: 59
27
30
  segments:
28
31
  - 4
29
32
  - 0
@@ -35,9 +38,11 @@ dependencies:
35
38
  name: filander
36
39
  prerelease: false
37
40
  requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
38
42
  requirements:
39
43
  - - ">="
40
44
  - !ruby/object:Gem::Version
45
+ hash: 13
41
46
  segments:
42
47
  - 0
43
48
  - 5
@@ -60,6 +65,8 @@ files:
60
65
  - lib/shnell.rb
61
66
  - lib/shnell/actions/database.rb
62
67
  - lib/shnell/actions/ftp.rb
68
+ - lib/shnell/actions/gem_install.rb
69
+ - lib/shnell/actions/git_clone.rb
63
70
  - lib/shnell/backup.rb
64
71
  - lib/shnell/config.rb
65
72
  - LICENSE
@@ -74,23 +81,27 @@ rdoc_options:
74
81
  require_paths:
75
82
  - lib
76
83
  required_ruby_version: !ruby/object:Gem::Requirement
84
+ none: false
77
85
  requirements:
78
86
  - - ">="
79
87
  - !ruby/object:Gem::Version
88
+ hash: 3
80
89
  segments:
81
90
  - 0
82
91
  version: "0"
83
92
  required_rubygems_version: !ruby/object:Gem::Requirement
93
+ none: false
84
94
  requirements:
85
95
  - - ">="
86
96
  - !ruby/object:Gem::Version
97
+ hash: 3
87
98
  segments:
88
99
  - 0
89
100
  version: "0"
90
101
  requirements: []
91
102
 
92
103
  rubyforge_project:
93
- rubygems_version: 1.3.6
104
+ rubygems_version: 1.3.7
94
105
  signing_key:
95
106
  specification_version: 3
96
107
  summary: Server Setup and Configuration tools