kamal-backup 0.3.0.beta10 → 0.3.0.beta11

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c534b081ef41f75a8d10e72ae0fcbaa7b81ad5a0f2cbb3a12c281353d74ab69b
4
- data.tar.gz: 6bd3b48d5573ab6a1e19ec1452584b7d44fc62e852edb7c202e2191d3bac6743
3
+ metadata.gz: a292aa17220ba3ef9cf77c566d5530ece93450aeaa3b01e8f3eaf234ca00859a
4
+ data.tar.gz: 19a798a19c52f3467fabac4bd5699d0a0b717fe2e9c0da238083aea1e99766cc
5
5
  SHA512:
6
- metadata.gz: fdef6636e464308da24e9bb11aa64d8e68535fc9a8fc261a4dce02dc7e0d0bd26f20320f9dfede598085d780764310b0b3a7ad71ba3fe8d48e61d5c756b3597a
7
- data.tar.gz: de0667fae6cb0ae276f1b4511ea1c63ffe8655523648a0e3f1e40d6872e53ba2823b4d987d4e651ace4d47710d516d17dc32f9e269e9bd20115501a533f793be
6
+ metadata.gz: aa21d79ea00396dcd2a4f0496ef79c29e9db626a6f31e9969e99ff6560149ddb8aa3cdd0819490d896e770e39a655f4d0212c6b9a02fe0be46bbe1bc8a5441ac
7
+ data.tar.gz: 622747a659f8d7dc0c02b65888d51693d7388772a99f6459ba919ddaa8603be18dd90299c7f7c03fbb40906154b1c9c3aeace84986b22637381e8762a37bbb5b
@@ -429,6 +429,10 @@ module KamalBackup
429
429
  output ||= CommandOutput.new(io: $stderr, env: env)
430
430
  output.error("(#{e.class}): #{e.message}", redactor: Redactor.new(env: env))
431
431
  exit(1)
432
+ rescue StandardError => e
433
+ output ||= CommandOutput.new(io: $stderr, env: env)
434
+ output.error("(#{e.class}): #{e.message}", redactor: Redactor.new(env: env))
435
+ exit(1)
432
436
  rescue Interrupt
433
437
  output ||= CommandOutput.new(io: $stderr, env: env)
434
438
  output.error("(Interrupt): interrupted", redactor: Redactor.new(env: env))
@@ -48,13 +48,20 @@ module KamalBackup
48
48
  Open3.popen3(command.env, *command.argv) do |stdin, stdout, stderr, wait_thread|
49
49
  stdout_reader = Thread.new { Command.collect_stream(stdout, command_output: output, context: context, stream: :stdout, redactor: redactor) }
50
50
  stderr_reader = Thread.new { Command.collect_stream(stderr, command_output: output, context: context, stream: :stderr, redactor: redactor) }
51
- IO.copy_stream(file, stdin)
52
- stdin.close
51
+ copy_error = nil
52
+ begin
53
+ IO.copy_stream(file, stdin)
54
+ rescue Errno::EPIPE => e
55
+ copy_error = e
56
+ ensure
57
+ stdin.close unless stdin.closed?
58
+ end
53
59
  out = stdout_reader.value
54
60
  err = stderr_reader.value
55
61
  status = wait_thread.value
56
62
  output&.command_exit(context, status.exitstatus)
57
63
  raise_command_error(command, status, out, err) unless status.success?
64
+ raise_stream_error(command, copy_error, out, err) if copy_error
58
65
 
59
66
  CommandResult.new(stdout: out, stderr: err, status: status.exitstatus)
60
67
  end
@@ -309,6 +316,15 @@ module KamalBackup
309
316
  )
310
317
  end
311
318
 
319
+ def raise_stream_error(command, error, stdout, stderr)
320
+ raise CommandError.new(
321
+ "failed to stream file to #{command.display(redactor)}: #{error.message}\n#{redactor.redact_string(stderr)}",
322
+ command: command,
323
+ stdout: redactor.redact_string(stdout),
324
+ stderr: redactor.redact_string(stderr)
325
+ )
326
+ end
327
+
312
328
  def write_last_check(payload)
313
329
  FileUtils.mkdir_p(config.state_dir)
314
330
  File.write(config.last_check_path, JSON.pretty_generate(payload.transform_values { |value| value.respond_to?(:iso8601) ? value.iso8601 : redactor.redact_string(value.to_s) }))
@@ -1,3 +1,3 @@
1
1
  module KamalBackup
2
- VERSION = "0.3.0.beta10"
2
+ VERSION = "0.3.0.beta11"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kamal-backup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0.beta10
4
+ version: 0.3.0.beta11
5
5
  platform: ruby
6
6
  authors:
7
7
  - crmne