Module: ODisk
- Defined in:
- lib/odisk.rb,
lib/odisk/dir.rb,
lib/odisk/diff.rb,
lib/odisk/file.rb,
lib/odisk/info.rb,
lib/odisk/link.rb,
lib/odisk/copier.rb,
lib/odisk/digest.rb,
lib/odisk/remote.rb,
lib/odisk/crypter.rb,
lib/odisk/fetcher.rb,
lib/odisk/planner.rb,
lib/odisk/statjob.rb,
lib/odisk/syncjob.rb,
lib/odisk/version.rb,
lib/odisk/digester.rb,
lib/odisk/statfixer.rb,
lib/odisk/dirsyncjob.rb,
lib/odisk/syncstarter.rb
Defined Under Namespace
Classes: Copier, Crypter, Diff, Digest, Digester, Dir, DirSyncJob, Fetcher, File, Info, Link, Planner, Remote, StatFixer, StatJob, SyncJob, SyncStarter
Constant Summary collapse
- VERSION =
Current version of the module.
'1.0.2'
Class Method Summary collapse
-
.gather_remote_info(local_dir, remote) ⇒ Object
Walk up the directory tree looking for .odisk directories and a remote.json in that directory.
- .info_from_remotes(local_dir, remote) ⇒ Object
Class Method Details
.gather_remote_info(local_dir, remote) ⇒ Object
Walk up the directory tree looking for .odisk directories and a remote.json in that directory. If the directory does not exist then stop the walk. If not found check the ~/.odisk/remotes.json file for a matching top.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/odisk.rb', line 8 def self.gather_remote_info(local_dir, remote) top = local_dir if remote.user.nil? || remote.host.nil? || remote.dir.nil? while ::File.directory?(::File.join(top, '.odisk')) rfile = ::File.join(top, '.odisk', 'remote') if ::File.file?(rfile) rstr = ::File.read(rfile).strip() #remote.pass_file = ::File.expand_path(remote.pass_file) unless remote.pass_file.nil? || remote.pass_file.empty? orig_pass_file = remote.pass_file remote.update(rstr) remote.pass_file = ::File.(remote.pass_file) unless remote.pass_file.nil? || remote.pass_file.empty? if !remote.dir.nil? && !remote.dir.empty? && top != $local_top remote.dir = remote.dir + local_dir[top.size..-1] end if remote.pass_file != orig_pass_file && !::File.file?(remote.pass_file) remote.pass_file = ::File.join(top, '.odisk', remote.pass_file) end break end top = ::File.dirname(top) end end info_from_remotes(local_dir, remote) unless remote.complete? remote.user = ENV['USER'] if remote.user.nil? unless remote.okay? puts "*** user@host:top_dir not specified on command line, in local .odisk/remote file, or in ~/.odisk/remotes" return false end true end |
.info_from_remotes(local_dir, remote) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/odisk.rb', line 39 def self.info_from_remotes(local_dir, remote) orig_pass_file = remote.pass_file local_dir = ::File.(local_dir) remotes_file = ::File.join(::File.('~'), '.odisk', 'remotes') if ::File.file?(remotes_file) ::File.readlines(remotes_file).each do |line| l,r = line.split(':', 2) l = ::File.(l) if l == local_dir || local_dir.start_with?(l + '/') remote.update(r) remote.dir = remote.dir + remote.dir[l.size..-1] if l != local_dir && !remote.dir.nil? if remote.pass_file != orig_pass_file && !::File.file?(remote.pass_file) remote.pass_file = ::File.join(::File.('~'), '.odisk', remote.pass_file) end break end end end end |