module LeapCli::Path

Public Class Methods

defined?(name) click to toggle source
# File lib/leap_cli/path.rb, line 89
def self.defined?(name)
  Leap::Platform.paths[name]
end
exists?(name, provider_dir=nil) click to toggle source
# File lib/leap_cli/path.rb, line 85
def self.exists?(name, provider_dir=nil)
  File.exist?(named_path(name, provider_dir))
end
find_file(arg) click to toggle source

Tries to find a file somewhere. Path can be a named path or a relative path.

relative paths are checked against provider/<path> provider/files/<path> provider_base/<path> provider_base/files/<path>

# File lib/leap_cli/path.rb, line 39
def self.find_file(arg)
  [Path.provider, Path.provider_base].each do |base|
    if arg.is_a?(Symbol) || arg.is_a?(Array)
      named_path(arg, base).tap {|path|
        return path if File.exist?(path)
      }
    else
      File.join(base, arg).tap {|path|
        return path if File.exist?(path)
      }
      File.join(base, 'files', arg).tap {|path|
        return path if File.exist?(path)
      }
    end
  end
  return nil
end
named_path(name, provider_dir=Path.provider) click to toggle source

Three ways of calling:

# File lib/leap_cli/path.rb, line 64
def self.named_path(name, provider_dir=Path.provider)
  if name.is_a? Array
    if name.length > 2
      arg = name[1..-1]
      name = name[0]
    else
      name, arg = name
    end
  else
    arg = nil
  end

  if name.is_a? Symbol
    Util::assert!(Leap::Platform.paths[name], "Error, I don't know the path for :#{name} (with argument '#{arg}')")
    filename = eval('"' + Leap::Platform.paths[name] + '"')
    return provider_dir + '/' + filename
  else
    return name
  end
end
node_init_script() click to toggle source
# File lib/leap_cli/path.rb, line 110
def self.node_init_script
  File.join(@platform, 'bin', 'node_init')
end
platform() click to toggle source
# File lib/leap_cli/path.rb, line 5
def self.platform
  @platform ||= nil
end
provider() click to toggle source
# File lib/leap_cli/path.rb, line 17
def self.provider
  @provider
end
provider_base() click to toggle source
# File lib/leap_cli/path.rb, line 9
def self.provider_base
  "#{platform}/provider_base"
end
provider_templates() click to toggle source
# File lib/leap_cli/path.rb, line 13
def self.provider_templates
  "#{platform}/provider_templates"
end
relative_path(path, provider_dir=Path.provider) click to toggle source
# File lib/leap_cli/path.rb, line 93
def self.relative_path(path, provider_dir=Path.provider)
  if provider_dir
    path = named_path(path, provider_dir)
    path.sub(/^#{Regexp.escape(provider_dir)}\//,'')
  else
    path
  end
end
set_platform_path(platform) click to toggle source
# File lib/leap_cli/path.rb, line 24
def self.set_platform_path(platform)
  @platform = platform
end
set_provider_path(provider) click to toggle source
# File lib/leap_cli/path.rb, line 21
def self.set_provider_path(provider)
  @provider = provider
end
vagrant_ssh_priv_key_file() click to toggle source
# File lib/leap_cli/path.rb, line 102
def self.vagrant_ssh_priv_key_file
  File.join(LEAP_CLI_BASE_DIR, 'vendor', 'vagrant_ssh_keys', 'vagrant.key')
end
vagrant_ssh_pub_key_file() click to toggle source
# File lib/leap_cli/path.rb, line 106
def self.vagrant_ssh_pub_key_file
  File.join(LEAP_CLI_BASE_DIR, 'vendor', 'vagrant_ssh_keys', 'vagrant.pub')
end