Class: LicenseAuto::GitModule

Inherits:
PackageManager show all
Defined in:
lib/license_auto/package_manager/git_module.rb

Constant Summary collapse

LANGUAGE =
'GitModule'

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from PackageManager

#check_cli, #dependency_file_path_names

Constructor Details

#initialize(path) ⇒ GitModule

Returns a new instance of GitModule.



11
12
13
# File 'lib/license_auto/package_manager/git_module.rb', line 11

def initialize(path)
  super(path)
end

Class Method Details

.check_cliObject



39
40
41
42
43
44
45
46
47
48
# 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

Instance Method Details

#dependency_file_patternObject



15
16
17
# File 'lib/license_auto/package_manager/git_module.rb', line 15

def dependency_file_pattern
  /#{@path}\/\.gitmodules$/
end

#parse_dependenciesObject



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 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