syncftp 0.0.1 → 0.0.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.
- data/README.rdoc +5 -0
- data/VERSION +1 -1
- data/lib/syncftp.rb +30 -5
- data/syncftp.gemspec +1 -1
- metadata +2 -2
data/README.rdoc
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/lib/syncftp.rb
CHANGED
@@ -47,8 +47,12 @@ module Net
|
|
47
47
|
find = path.pop
|
48
48
|
path = path.join( "/" )
|
49
49
|
path = "." if path == ""
|
50
|
+
altdir = dir
|
51
|
+
altdir = dir[2..-1] if dir[0,2] == "./"
|
50
52
|
|
51
|
-
|
53
|
+
return true if dir == "."
|
54
|
+
|
55
|
+
nlst( path ).include?( find ) or nlst( path ).include?( dir ) or nlst( path ).include?( altdir )
|
52
56
|
end
|
53
57
|
|
54
58
|
#
|
@@ -83,6 +87,9 @@ class File
|
|
83
87
|
# Check if the +file+ is a binary file
|
84
88
|
#
|
85
89
|
def self.binary?( file )
|
90
|
+
if MIME::Types.type_for( file ).size == 0
|
91
|
+
return true
|
92
|
+
end
|
86
93
|
MIME::Types.type_for( file ).map{ |e| (e.binary?) ? e : nil }.compact.size > 0
|
87
94
|
end
|
88
95
|
end
|
@@ -102,9 +109,16 @@ class SyncFTP
|
|
102
109
|
# * +:loglevel+ - default = Logger::UNKNOWN (Cool if you don't want logs)
|
103
110
|
#
|
104
111
|
def initialize(host, options = {})
|
105
|
-
options = {
|
112
|
+
options = {
|
113
|
+
:username => "anonymous",
|
114
|
+
:password => nil,
|
115
|
+
:logfile => STDOUT,
|
116
|
+
:loglevel => Logger::UNKNOWN,
|
117
|
+
:catalog => :remote
|
118
|
+
}.merge(options)
|
106
119
|
@host, @port = host, options[:port]||21
|
107
120
|
@username, @password = options[:username], options[:password]
|
121
|
+
@catalog = options[:catalog]
|
108
122
|
@remote_md5s = {}
|
109
123
|
@local_md5s = {}
|
110
124
|
@log = Logger.new( options[:logfile] )
|
@@ -145,6 +159,15 @@ class SyncFTP
|
|
145
159
|
File.delete( tmpname )
|
146
160
|
end
|
147
161
|
|
162
|
+
def getCatalog #:nodoc
|
163
|
+
end
|
164
|
+
|
165
|
+
def saveCatalog #:nodoc
|
166
|
+
end
|
167
|
+
|
168
|
+
def catalogFileName #:nodoc
|
169
|
+
end
|
170
|
+
|
148
171
|
private
|
149
172
|
def tmpfilename #:nodoc:
|
150
173
|
tmpdir = Dir::tmpdir
|
@@ -175,7 +198,7 @@ class SyncFTP
|
|
175
198
|
end
|
176
199
|
|
177
200
|
def send_dir(ftp, local, remote) #:nodoc:
|
178
|
-
ftp.mkdir_p(remote)
|
201
|
+
ftp.mkdir_p(remote) unless ftp.remote_dir_exist?(remote)
|
179
202
|
|
180
203
|
Dir.foreach(local) do |file|
|
181
204
|
next if file == "." or file == ".."
|
@@ -190,12 +213,14 @@ class SyncFTP
|
|
190
213
|
@local_md5s[remote_file] = Digest::MD5.hexdigest( File.open(local_file).read )
|
191
214
|
|
192
215
|
if( @local_md5s[remote_file] != @remote_md5s[remote_file] )
|
193
|
-
@log.info "Copy #{local_file} to ftp://#{@host}:#{@port}/#{remote_file}"
|
194
|
-
|
195
216
|
# It's a file, we just send it
|
196
217
|
if File.binary?(local_file)
|
218
|
+
@log.info "Copy [Binary] #{local_file} to ftp://#{@host}:#{@port}/#{remote_file}"
|
219
|
+
|
197
220
|
ftp.putbinaryfile(local_file, remote_file)
|
198
221
|
else
|
222
|
+
@log.info "Copy [Text] #{local_file} to ftp://#{@host}:#{@port}/#{remote_file}"
|
223
|
+
|
199
224
|
ftp.puttextfile(local_file, remote_file)
|
200
225
|
end
|
201
226
|
else
|
data/syncftp.gemspec
CHANGED