fauna-echoe 3.2

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.
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rake/contrib/sshpublisher'
4
+
5
+ module Rake
6
+
7
+ class RubyForgePublisher < SshDirPublisher
8
+ attr_reader :project, :proj_id, :user
9
+
10
+ def initialize(projname, user)
11
+ super(
12
+ "#{user}@rubyforge.org",
13
+ "/var/www/gforge-projects/#{projname}",
14
+ "html")
15
+ end
16
+ end
17
+
18
+ end
@@ -0,0 +1,43 @@
1
+ module Rake
2
+
3
+ # Publish an entire directory to an existing remote directory using
4
+ # SSH.
5
+ class SshDirPublisher
6
+ def initialize(host, remote_dir, local_dir)
7
+ @host = host
8
+ @remote_dir = remote_dir
9
+ @local_dir = local_dir
10
+ end
11
+
12
+ def upload
13
+ sh %{scp -rq #{@local_dir}/* #{@host}:#{@remote_dir}}
14
+ end
15
+ end
16
+
17
+ # Publish an entire directory to a fresh remote directory using SSH.
18
+ class SshFreshDirPublisher < SshDirPublisher
19
+ def upload
20
+ sh %{ssh #{@host} rm -rf #{@remote_dir}} rescue nil
21
+ sh %{ssh #{@host} mkdir #{@remote_dir}}
22
+ super
23
+ end
24
+ end
25
+
26
+ # Publish a list of files to an existing remote directory.
27
+ class SshFilePublisher
28
+ # Create a publisher using the give host information.
29
+ def initialize(host, remote_dir, local_dir, *files)
30
+ @host = host
31
+ @remote_dir = remote_dir
32
+ @local_dir = local_dir
33
+ @files = files
34
+ end
35
+
36
+ # Upload the local directory to the remote directory.
37
+ def upload
38
+ @files.each do |fn|
39
+ sh %{scp -q #{@local_dir}/#{fn} #{@host}:#{@remote_dir}}
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,209 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ #--
4
+ # Copyright (c) 2003, 2004 Jim Weirich
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining
7
+ # a copy of this software and associated documentation files (the
8
+ # "Software"), to deal in the Software without restriction, including
9
+ # without limitation the rights to use, copy, modify, merge, publish,
10
+ # distribute, sublicense, and/or sell copies of the Software, and to
11
+ # permit persons to whom the Software is furnished to do so, subject to
12
+ # the following conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
+ #++
25
+ #
26
+ begin
27
+ require 'ftools'
28
+ rescue LoadError
29
+ end
30
+ require 'rbconfig'
31
+
32
+ ######################################################################
33
+ # Sys provides a number of file manipulation tools for the convenience
34
+ # of writing Rakefiles. All commands in this module will announce
35
+ # their activity on standard output if the $verbose flag is set
36
+ # ($verbose = true is the default). You can control this by globally
37
+ # setting $verbose or by using the +verbose+ and +quiet+ methods.
38
+ #
39
+ # Sys has been deprecated in favor of the FileUtils module available
40
+ # in Ruby 1.8.
41
+ #
42
+ module Sys
43
+ RUBY = Config::CONFIG['ruby_install_name']
44
+
45
+ # Install all the files matching +wildcard+ into the +dest_dir+
46
+ # directory. The permission mode is set to +mode+.
47
+ def install(wildcard, dest_dir, mode)
48
+ Dir[wildcard].each do |fn|
49
+ File.install(fn, dest_dir, mode, $verbose)
50
+ end
51
+ end
52
+
53
+ # Run the system command +cmd+.
54
+ def run(cmd)
55
+ log cmd
56
+ system(cmd) or fail "Command Failed: [#{cmd}]"
57
+ end
58
+
59
+ # Run a Ruby interpreter with the given arguments.
60
+ def ruby(*args)
61
+ run "#{RUBY} #{args.join(' ')}"
62
+ end
63
+
64
+ # Copy a single file from +file_name+ to +dest_file+.
65
+ def copy(file_name, dest_file)
66
+ log "Copying file #{file_name} to #{dest_file}"
67
+ File.copy(file_name, dest_file)
68
+ end
69
+
70
+ # Copy all files matching +wildcard+ into the directory +dest_dir+.
71
+ def copy_files(wildcard, dest_dir)
72
+ for_matching_files(wildcard, dest_dir) { |from, to| copy(from, to) }
73
+ end
74
+
75
+ # Link +file_name+ to +dest_file+.
76
+ def link(file_name, dest_file)
77
+ log "Linking file #{file_name} to #{dest_file}"
78
+ File.link(file_name, dest_file)
79
+ end
80
+
81
+ # Link all files matching +wildcard+ into the directory +dest_dir+.
82
+ def link_files(wildcard, dest_dir)
83
+ for_matching_files(wildcard, dest_dir) { |from, to| link(from, to) }
84
+ end
85
+
86
+ # Symlink +file_name+ to +dest_file+.
87
+ def symlink(file_name, dest_file)
88
+ log "Symlinking file #{file_name} to #{dest_file}"
89
+ File.symlink(file_name, dest_file)
90
+ end
91
+
92
+ # Symlink all files matching +wildcard+ into the directory +dest_dir+.
93
+ def symlink_files(wildcard, dest_dir)
94
+ for_matching_files(wildcard, dest_dir) { |from, to| link(from, to) }
95
+ end
96
+
97
+ # Remove all files matching +wildcard+. If a matching file is a
98
+ # directory, it must be empty to be removed. used +delete_all+ to
99
+ # recursively delete directories.
100
+ def delete(*wildcards)
101
+ wildcards.each do |wildcard|
102
+ Dir[wildcard].each do |fn|
103
+ if File.directory?(fn)
104
+ log "Deleting directory #{fn}"
105
+ Dir.delete(fn)
106
+ else
107
+ log "Deleting file #{fn}"
108
+ File.delete(fn)
109
+ end
110
+ end
111
+ end
112
+ end
113
+
114
+ # Recursively delete all files and directories matching +wildcard+.
115
+ def delete_all(*wildcards)
116
+ wildcards.each do |wildcard|
117
+ Dir[wildcard].each do |fn|
118
+ next if ! File.exist?(fn)
119
+ if File.directory?(fn)
120
+ Dir["#{fn}/*"].each do |subfn|
121
+ next if subfn=='.' || subfn=='..'
122
+ delete_all(subfn)
123
+ end
124
+ log "Deleting directory #{fn}"
125
+ Dir.delete(fn)
126
+ else
127
+ log "Deleting file #{fn}"
128
+ File.delete(fn)
129
+ end
130
+ end
131
+ end
132
+ end
133
+
134
+ # Make the directories given in +dirs+.
135
+ def makedirs(*dirs)
136
+ dirs.each do |fn|
137
+ log "Making directory #{fn}"
138
+ File.makedirs(fn)
139
+ end
140
+ end
141
+
142
+ # Make +dir+ the current working directory for the duration of
143
+ # executing the given block.
144
+ def indir(dir)
145
+ olddir = Dir.pwd
146
+ Dir.chdir(dir)
147
+ yield
148
+ ensure
149
+ Dir.chdir(olddir)
150
+ end
151
+
152
+ # Split a file path into individual directory names.
153
+ #
154
+ # For example:
155
+ # split_all("a/b/c") => ['a', 'b', 'c']
156
+ def split_all(path)
157
+ head, tail = File.split(path)
158
+ return [tail] if head == '.' || tail == '/'
159
+ return [head, tail] if head == '/'
160
+ return split_all(head) + [tail]
161
+ end
162
+
163
+ # Write a message to standard out if $verbose is enabled.
164
+ def log(msg)
165
+ print " " if $trace && $verbose
166
+ puts msg if $verbose
167
+ end
168
+
169
+ # Perform a block with $verbose disabled.
170
+ def quiet(&block)
171
+ with_verbose(false, &block)
172
+ end
173
+
174
+ # Perform a block with $verbose enabled.
175
+ def verbose(&block)
176
+ with_verbose(true, &block)
177
+ end
178
+
179
+ # Perform a block with each file matching a set of wildcards.
180
+ def for_files(*wildcards)
181
+ wildcards.each do |wildcard|
182
+ Dir[wildcard].each do |fn|
183
+ yield(fn)
184
+ end
185
+ end
186
+ end
187
+
188
+ extend(self)
189
+
190
+ private # ----------------------------------------------------------
191
+
192
+ def for_matching_files(wildcard, dest_dir)
193
+ Dir[wildcard].each do |fn|
194
+ dest_file = File.join(dest_dir, fn)
195
+ parent = File.dirname(dest_file)
196
+ makedirs(parent) if ! File.directory?(parent)
197
+ yield(fn, dest_file)
198
+ end
199
+ end
200
+
201
+ def with_verbose(v)
202
+ oldverbose = $verbose
203
+ $verbose = v
204
+ yield
205
+ ensure
206
+ $verbose = oldverbose
207
+ end
208
+
209
+ end
metadata ADDED
@@ -0,0 +1,107 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fauna-echoe
3
+ version: !ruby/object:Gem::Version
4
+ version: "3.2"
5
+ platform: ruby
6
+ authors:
7
+ - Evan Weaver
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-08-27 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rubyforge
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.0.2
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: highline
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: "0"
34
+ version:
35
+ description: A Rubygems packaging tool that provides Rake tasks for documentation, extension compiling, testing, and deployment.
36
+ email: ""
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - CHANGELOG
43
+ - lib/echoe/client.rb
44
+ - lib/echoe/extensions.rb
45
+ - lib/echoe/net.rb
46
+ - lib/echoe/platform.rb
47
+ - lib/echoe/rubygems.rb
48
+ - lib/echoe.rb
49
+ - LICENSE
50
+ - README
51
+ - TODO
52
+ files:
53
+ - CHANGELOG
54
+ - echoe.gemspec
55
+ - lib/echoe/client.rb
56
+ - lib/echoe/extensions.rb
57
+ - lib/echoe/net.rb
58
+ - lib/echoe/platform.rb
59
+ - lib/echoe/rubygems.rb
60
+ - lib/echoe.rb
61
+ - LICENSE
62
+ - Manifest
63
+ - MIT-LICENSE
64
+ - Rakefile
65
+ - README
66
+ - TODO
67
+ - vendor/rake/lib/rake/contrib/compositepublisher.rb
68
+ - vendor/rake/lib/rake/contrib/ftptools.rb
69
+ - vendor/rake/lib/rake/contrib/publisher.rb
70
+ - vendor/rake/lib/rake/contrib/rubyforgepublisher.rb
71
+ - vendor/rake/lib/rake/contrib/sshpublisher.rb
72
+ - vendor/rake/lib/rake/contrib/sys.rb
73
+ - vendor/rake/MIT-LICENSE
74
+ has_rdoc: true
75
+ homepage: http://blog.evanweaver.com/files/doc/fauna/echoe/
76
+ licenses:
77
+ post_install_message:
78
+ rdoc_options:
79
+ - --line-numbers
80
+ - --inline-source
81
+ - --title
82
+ - Echoe
83
+ - --main
84
+ - README
85
+ require_paths:
86
+ - lib
87
+ required_ruby_version: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: "0"
92
+ version:
93
+ required_rubygems_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: "1.2"
98
+ version:
99
+ requirements: []
100
+
101
+ rubyforge_project: fauna
102
+ rubygems_version: 1.3.5
103
+ signing_key:
104
+ specification_version: 2
105
+ summary: A Rubygems packaging tool that provides Rake tasks for documentation, extension compiling, testing, and deployment.
106
+ test_files: []
107
+