class TabKeeper::LoginShell

Public Class Methods

new(previous, job: nil, code_directory: nil, **_options) click to toggle source
# File lib/tab_keeper/login_shell.rb, line 3
def initialize(previous, job: nil, code_directory: nil, **_options)
  @command = previous || job
  @code_directory = code_directory
  return if code_directory
  raise ArgumentError, "code `directory` must be configured for LoginShell"
end

Public Instance Methods

to_s() click to toggle source
# File lib/tab_keeper/login_shell.rb, line 10
def to_s
  "/bin/bash -l -c 'cd #{escaped_path} && #{escaped_command}'"
end

Private Instance Methods

escaped_command() click to toggle source
# File lib/tab_keeper/login_shell.rb, line 20
def escaped_command
  @command.chars.map { |char| char == "'" ? "'\\''" : char }.join
end
escaped_path() click to toggle source
# File lib/tab_keeper/login_shell.rb, line 16
def escaped_path
  @code_directory.chars.map { |char| char == "'" ? "'\\''" : char }.join
end