class Rustic::CommandBuilder
Public Class Methods
new(command, config)
click to toggle source
# File lib/rustic/command_builder.rb, line 9 def initialize(command, config) @command = command @config = config end
Public Instance Methods
build()
click to toggle source
# File lib/rustic/command_builder.rb, line 14 def build @args = [] @env_variables = {} add_repository_path! add_password! config = add_command! [[@config.restic_path, *@args], @env_variables, config] # TODO: properly handle spaces in paths end
Private Instance Methods
add_command!()
click to toggle source
# File lib/rustic/command_builder.rb, line 37 def add_command! command_builder = Rustic::CommandBuilders.const_get(@command.capitalize).new(@config) @args.concat(command_builder.build) command_builder.config rescue NameError raise UnknownCommandError, "Unknown command #{@command}" end
add_password!()
click to toggle source
# File lib/rustic/command_builder.rb, line 30 def add_password! return @env_variables.merge!("RESTIC_PASSWORD" => @config.password) if @config.password return @env_variables.merge!("RESTIC_PASSWORD_FILE" => @config.password_file) if @config.password_file raise UnknownPasswordMethodError end
add_repository_path!(= @args.concat(["-r", @config.repository]))
click to toggle source
# File lib/rustic/command_builder.rb, line 28 def add_repository_path! = @args.concat(["-r", @config.repository]) def add_password! return @env_variables.merge!("RESTIC_PASSWORD" => @config.password) if @config.password return @env_variables.merge!("RESTIC_PASSWORD_FILE" => @config.password_file) if @config.password_file raise UnknownPasswordMethodError end def add_command! command_builder = Rustic::CommandBuilders.const_get(@command.capitalize).new(@config) @args.concat(command_builder.build) command_builder.config rescue NameError raise UnknownCommandError, "Unknown command #{@command}" end end