Class: Restic::Service::Targets::RcloneB2
- Includes:
- B2
- Defined in:
- lib/restic/service/targets/rclone_b2.rb
Instance Attribute Summary
Attributes inherited from Base
Class Method Summary collapse
Instance Method Summary collapse
Methods included from B2
Methods inherited from Base
#available?, #initialize, #nice_commands
Class Method Details
.normalize_yaml(yaml) ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/restic/service/targets/rclone_b2.rb', line 7 def self.normalize_yaml(yaml) yaml = B2.normalize_yaml(yaml) if !yaml['src'] raise Conf::InvalidConfigurationFile, "no src field provided for rclone-b2" elsif !File.directory?(yaml['src']) raise Conf::InvalidConfigurationFile, "provided rclone-b2 source #{yaml['src']} does not exist" end yaml end |
Instance Method Details
#run ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/restic/service/targets/rclone_b2.rb', line 26 def run extra_args = [] if @bandwidth_limit extra_args << '--bwlimit' << @bandwidth_limit.to_s end if @verbose extra_args << "--verbose" end Tempfile.create "rclone-#{@name}", @conf_path.to_path, perm: 0600 do |io| io.puts "[restic-service]\ntype = b2\naccount = \#{@id}\nkey = \#{@key}\nendpoint =\n" io.flush system(@rclone_path.to_path, '--transfers', '16', '--config', io.path, '--delete-during', *@filter.flat_map { |p| ['--filter', p] }, *extra_args, 'sync', @src, "restic-service:#{@bucket}/#{@path}", in: :close) end end |
#setup_from_conf(conf, yaml) ⇒ Object
17 18 19 20 21 22 23 24 |
# File 'lib/restic/service/targets/rclone_b2.rb', line 17 def setup_from_conf(conf, yaml) super @rclone_path = conf.tool_path('rclone') @src = yaml['src'] @filter = yaml['filter'] || [] @verbose = yaml.fetch('verbose', true) @conf_path = conf.conf_path end |