Class: Fig::Protocol::File
- Inherits:
-
Object
- Object
- Fig::Protocol::File
- Includes:
- Fig::Protocol
- Defined in:
- lib/fig/protocol/file.rb
Overview
File transfers for the local filesystem.
Instance Method Summary collapse
-
#download(uri, path, prompt_for_login) ⇒ Object
Returns whether the file was not downloaded because the file already exists and is already up-to-date.
- #download_list(uri) ⇒ Object
-
#path_up_to_date?(uri, path, prompt_for_login) ⇒ Boolean
Determine whether we need to update something.
- #upload(local_file, uri) ⇒ Object
Instance Method Details
#download(uri, path, prompt_for_login) ⇒ Object
Returns whether the file was not downloaded because the file already exists and is already up-to-date.
46 47 48 49 50 51 52 53 54 55 |
# File 'lib/fig/protocol/file.rb', line 46 def download(uri, path, prompt_for_login) begin unescaped_path = CGI.unescape uri.path FileUtils.cp(unescaped_path, path) return true rescue Errno::ENOENT => error raise Fig::FileNotFoundError.new error., uri end end |
#download_list(uri) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/fig/protocol/file.rb', line 16 def download_list(uri) packages = [] unescaped_path = CGI.unescape uri.path return packages if ! ::File.exist?(unescaped_path) ls = '' Find.find(unescaped_path) { |file| ls << file.to_s; ls << "\n" } strip_paths_for_list(ls, packages, unescaped_path) return packages end |
#path_up_to_date?(uri, path, prompt_for_login) ⇒ Boolean
Determine whether we need to update something. Returns nil to indicate “don’t know”.
31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/fig/protocol/file.rb', line 31 def path_up_to_date?(uri, path, prompt_for_login) begin unescaped_path = CGI.unescape uri.path if ::File.mtime(unescaped_path) <= ::File.mtime(path) return true end return false rescue Errno::ENOENT => error raise Fig::FileNotFoundError.new error., uri end end |
#upload(local_file, uri) ⇒ Object
57 58 59 60 61 62 63 |
# File 'lib/fig/protocol/file.rb', line 57 def upload(local_file, uri) unescaped_path = CGI.unescape uri.path FileUtils.mkdir_p(::File.dirname(unescaped_path)) FileUtils.cp(local_file, unescaped_path) return end |