class LicenseAuto::GitModule
Constants
- LANGUAGE
Public Class Methods
check_cli()
click to toggle source
# File lib/license_auto/package_manager/git_module.rb, line 39 def self.check_cli cmd = 'git version' stdout_str, stderr_str, _status = Open3.capture3(cmd) if stdout_str.include?('git version') true else LicenseAuto.logger.error("stdout_str: #{stdout_str}, stderr_str: #{stderr_str}") false end end
new(path)
click to toggle source
Calls superclass method
LicenseAuto::PackageManager::new
# File lib/license_auto/package_manager/git_module.rb, line 11 def initialize(path) super(path) end
Public Instance Methods
dependency_file_pattern()
click to toggle source
# File lib/license_auto/package_manager/git_module.rb, line 15 def dependency_file_pattern /#{@path}\/\.gitmodules$/ end
parse_dependencies()
click to toggle source
# File lib/license_auto/package_manager/git_module.rb, line 19 def parse_dependencies git_module_files = dependency_file_path_names if git_module_files.empty? LicenseAuto.logger.info("#{LANGUAGE}: #{dependency_file_pattern} file not exist") [] elsif git_module_files.size == 1 dep_file = git_module_files.first LicenseAuto.logger.debug(dep_file) modules = parse_modules(dep_file) LicenseAuto.logger.debug(modules) [ { dep_file: dep_file, deps: modules } ] end # LicenseAuto.logger.debug(JSON.pretty_generate(dep_files)) end
Private Instance Methods
parse_modules(dep_file)
click to toggle source
# File lib/license_auto/package_manager/git_module.rb, line 52 def parse_modules(dep_file) lines = File.readlines(dep_file) module_pattern = /url\s=\s(?<url>.+)(\.git)?$/ lines.map {|line| matched = module_pattern.match(line) if matched LicenseAuto.logger.debug("matched: #{matched}, .gitmodule line: #{line}") clone_url = matched[:url].gsub(/\.git$/, '') { name: clone_url, # TODO: fetch version infomation from .git/ dir is to complex version: nil, remote: clone_url } end }.compact end