shnell 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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