class Licensed::Sources::GitSubmodule

Constants

GIT_SUBMODULES_ARGUMENTS
REMOTE_URL_ARGUMENT

Public Instance Methods

enabled?() click to toggle source
# File lib/licensed/sources/git_submodule.rb, line 14
def enabled?
  return false unless Licensed::Shell.tool_available?("git") && Licensed::Git.git_repo?
  gitmodules_path.exist?
end
enumerate_dependencies() click to toggle source
# File lib/licensed/sources/git_submodule.rb, line 19
def enumerate_dependencies
  git_submodules_command.lines.map do |line|
    displaypath, toplevel, version, homepage = line.strip.split
    name = File.basename(displaypath)
    submodule_path =
      if toplevel == config.pwd.to_s
        name
      else
        parent = File.basename(toplevel)
        "#{submodule_paths[parent]}/#{name}"
      end
    submodule_paths[name] = submodule_path

    Licensed::Dependency.new(
      name: submodule_path,
      version: version,
      path: config.pwd.join(displaypath),
      metadata: {
        "type" => self.class.type,
        "name" => name,
        "homepage" => homepage
      }
    )
  end
end
git_submodules_command() click to toggle source
# File lib/licensed/sources/git_submodule.rb, line 49
def git_submodules_command
  Licensed::Shell.execute("git", "submodule", "foreach", "-q", "--recursive", "echo #{GIT_SUBMODULES_ARGUMENTS.join(" ")}")
end
gitmodules_path() click to toggle source
# File lib/licensed/sources/git_submodule.rb, line 53
def gitmodules_path
  config.pwd.join(".gitmodules")
end
submodule_paths() click to toggle source
# File lib/licensed/sources/git_submodule.rb, line 45
def submodule_paths
  @submodule_paths ||= {}
end