summaryrefslogtreecommitdiff
path: root/lib/license/management
diff options
context:
space:
mode:
Diffstat (limited to 'lib/license/management')
-rw-r--r--lib/license/management/loggable.rb8
-rw-r--r--lib/license/management/report/v1.rb2
-rw-r--r--lib/license/management/report/v2.rb2
-rw-r--r--lib/license/management/repository.rb4
-rw-r--r--lib/license/management/shell.rb34
-rw-r--r--lib/license/management/version.rb2
6 files changed, 39 insertions, 13 deletions
diff --git a/lib/license/management/loggable.rb b/lib/license/management/loggable.rb
index 0122018..37bcf37 100644
--- a/lib/license/management/loggable.rb
+++ b/lib/license/management/loggable.rb
@@ -6,14 +6,6 @@ module License
def logger
License::Management.logger
end
-
- def log_info(message)
- logger.info(message)
- end
-
- def log_error(message)
- logger.error(message)
- end
end
end
end
diff --git a/lib/license/management/report/v1.rb b/lib/license/management/report/v1.rb
index 49423c6..27495b5 100644
--- a/lib/license/management/report/v1.rb
+++ b/lib/license/management/report/v1.rb
@@ -31,7 +31,7 @@ module License
license = { name: join_license_names(dependency.licenses) }
urls = dependency.licenses.map(&:url).reject { |x| blank?(x) }.uniq.sort
- log_info("multiple urls detected: #{urls.inspect}") if urls.size > 1
+ logger.info("multiple urls detected: #{urls.inspect}") if urls.size > 1
url = urls[0] || license_data(dependency.licenses.first)['url']
license[:url] = url if present?(url)
diff --git a/lib/license/management/report/v2.rb b/lib/license/management/report/v2.rb
index 6ab6b99..f8c96da 100644
--- a/lib/license/management/report/v2.rb
+++ b/lib/license/management/report/v2.rb
@@ -31,7 +31,7 @@ module License
def map_from(dependency)
licenses = dependency.licenses.map { |license| data_for(license)['id'] }.sort
- log_info [dependency.name, dependency.version, licenses].inspect
+ logger.info [dependency.name, dependency.version, licenses].inspect
{
name: dependency.name,
diff --git a/lib/license/management/repository.rb b/lib/license/management/repository.rb
index b13cec8..fdd4eae 100644
--- a/lib/license/management/repository.rb
+++ b/lib/license/management/repository.rb
@@ -60,7 +60,7 @@ module License
end
def generate_item_for(license)
- log_info("Detected unknown license `#{license.short_name}`. Contribute to https://gitlab.com/gitlab-org/security-products/license-management#contributing.")
+ logger.info("Detected unknown license `#{license.short_name}`. Contribute to https://gitlab.com/gitlab-org/security-products/license-management#contributing.")
name = take_first_line_from(license.name)
{
'id' => name.downcase,
@@ -88,7 +88,7 @@ module License
uri.path.split('/')[-1]
rescue StandardError => e
- log_info(e)
+ logger.error(e)
nil
end
end
diff --git a/lib/license/management/shell.rb b/lib/license/management/shell.rb
new file mode 100644
index 0000000..903d0b6
--- /dev/null
+++ b/lib/license/management/shell.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+
+module License
+ module Management
+ class Shell
+ attr_reader :logger
+
+ def initialize(logger: License::Management.logger)
+ @logger = logger
+ end
+
+ def execute(command, env: {})
+ expanded_command = expand(command)
+ logger.debug(expanded_command)
+
+ stdout, stderr, status = Open3.capture3(env, expanded_command)
+
+ logger.debug(stdout) unless stdout.nil? || stdout.empty?
+ logger.error(stderr) unless stderr.nil? || stderr.empty?
+ [stdout, stderr, status]
+ end
+
+ def sh(command, env: {})
+ execute("sh -c '#{expand(command)}'", env: env)
+ end
+
+ private
+
+ def expand(command)
+ Array(command).map(&:to_s).join(' ')
+ end
+ end
+ end
+end
diff --git a/lib/license/management/version.rb b/lib/license/management/version.rb
index 946d5e9..22f92ca 100644
--- a/lib/license/management/version.rb
+++ b/lib/license/management/version.rb
@@ -2,6 +2,6 @@
module License
module Management
- VERSION = '3.2.0'
+ VERSION = '3.3.0'
end
end