Class: Marz::Rsync::Result
- Inherits:
-
Object
- Object
- Marz::Rsync::Result
- Defined in:
- lib/marz/rsync/result.rb
Overview
The result of an rsync job
Constant Summary collapse
- ERROR_CODES =
Rsync exit values/error codes
{ #'0' => 'Success', '1' => 'Syntax or usage error', '2' => 'Protocol incompatibility', '3' => 'Errors selecting input/output files, dirs', '4' => 'Requested action not supported: an attempt was made to manipulate 64-bit files on a platform that cannot support them; or an option was specified that is supported by the client and not by the server.', '5' => 'Error starting client-server protocol', '6' => 'Daemon unable to append to log-file', '10' => 'Error in socket I/O', '11' => 'Error in file I/O', '12' => 'Error in rsync protocol data stream', '13' => 'Errors with program diagnostics', '14' => 'Error in IPC code', '20' => 'Received SIGUSR1 or SIGINT', '21' => 'Some error returned by waitpid()', '22' => 'Error allocating core memory buffers', '23' => 'Partial transfer due to error', '24' => 'Partial transfer due to vanished source files', '25' => 'The --max-delete limit stopped deletions', '30' => 'Timeout in data send/receive', '35' => 'Timeout waiting for daemon connection' }
Instance Attribute Summary collapse
-
#exitcode ⇒ Object
Exit code of an rsync job.
-
#output ⇒ Object
Output of an rsync job.
Instance Method Summary collapse
-
#error ⇒ String
Error message corresponding to the exit code/error code.
-
#initialize(output, exitcode) ⇒ Result
constructor
A new instance of Result.
-
#success? ⇒ Boolean
Whether rsync job run without errors.
-
#total_bytes_received ⇒ String
Total bytes received.
-
#total_bytes_sent ⇒ String
Total bytes sent.
-
#total_size ⇒ String
Total size of the rsync job.
Constructor Details
#initialize(output, exitcode) ⇒ Result
Returns a new instance of Result.
36 37 38 39 |
# File 'lib/marz/rsync/result.rb', line 36 def initialize(output, exitcode) @output = output @exitcode = exitcode end |
Instance Attribute Details
#exitcode ⇒ Object
Exit code of an rsync job
7 8 9 |
# File 'lib/marz/rsync/result.rb', line 7 def exitcode @exitcode end |
#output ⇒ Object
Output of an rsync job
10 11 12 |
# File 'lib/marz/rsync/result.rb', line 10 def output @output end |
Instance Method Details
#error ⇒ String
Error message corresponding to the exit code/error code
49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/marz/rsync/result.rb', line 49 def error return nil if @exitcode == 0 error_key = @exitcode.to_s if ERROR_CODES.has_key? error_key ERROR_CODES[error_key].to_s elsif @raw_output =~ /Permission denied \(publickey\)/ "Permission denied (publickey)" else "Unknown Error" end end |
#success? ⇒ Boolean
Whether rsync job run without errors
43 44 45 |
# File 'lib/marz/rsync/result.rb', line 43 def success? @exitcode == 0 end |
#total_bytes_received ⇒ String
Total bytes received
78 79 80 81 |
# File 'lib/marz/rsync/result.rb', line 78 def total_bytes_received return nil if @exitcode != 0 || @output.nil? @output.match(/^*(?:Total bytes received: )(\d\S*|\d+\.\d+\S*)/)[1] end |
#total_bytes_sent ⇒ String
Total bytes sent
71 72 73 74 |
# File 'lib/marz/rsync/result.rb', line 71 def total_bytes_sent return nil if @exitcode != 0 || @output.nil? @output.match(/^*(?:Total bytes sent: )(\d\S*|\d+\.\d+\S*)/)[1] end |
#total_size ⇒ String
Total size of the rsync job
63 64 65 66 67 |
# File 'lib/marz/rsync/result.rb', line 63 def total_size return nil if @exitcode != 0 || @output.nil? #@output.match(/^*(?:total size is )(\d+\.\d+\S)/)[1] @output.match(/^*(?:total size is )(\d\S*|\d+\.\d+\S*)/)[1] end |