From d51ea727bc57114cdc7216e2fd44d47ab246767b Mon Sep 17 00:00:00 2001 From: mo khan Date: Fri, 17 Apr 2020 14:29:03 -0600 Subject: Check for a valid version of gradle --- lib/license/finder/ext.rb | 1 + lib/license/finder/ext/gradle.rb | 17 ++++++++++++----- lib/license/finder/ext/package_manager.rb | 14 ++++++++++++++ 3 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 lib/license/finder/ext/package_manager.rb diff --git a/lib/license/finder/ext.rb b/lib/license/finder/ext.rb index 703afc5..70620be 100644 --- a/lib/license/finder/ext.rb +++ b/lib/license/finder/ext.rb @@ -5,6 +5,7 @@ require 'license/finder/ext/gradle' require 'license/finder/ext/license' require 'license/finder/ext/maven' require 'license/finder/ext/nuget' +require 'license/finder/ext/package_manager' require 'license/finder/ext/pip' require 'license/finder/ext/pipenv' require 'license/finder/ext/shared_helpers' diff --git a/lib/license/finder/ext/gradle.rb b/lib/license/finder/ext/gradle.rb index ca26201..23a013b 100644 --- a/lib/license/finder/ext/gradle.rb +++ b/lib/license/finder/ext/gradle.rb @@ -18,9 +18,9 @@ module LicenseFinder private def download_licenses - return [] unless gradle_major_version > 1 - _stdout, _stderr, status = Dir.chdir(project_path) do + return [] unless valid_gradle? + shell.execute([ @command, ENV.fetch('GRADLE_CLI_OPTS', '--exclude-task=test'), @@ -49,11 +49,18 @@ module LicenseFinder GradlePackage.new(hash, include_groups: @include_groups) end + def valid_gradle? + gradle_major_version.nil? || gradle_major_version > 1 + end + def gradle_major_version - stdout, _, status = shell.execute([package_management_command, '--version']) - stdout.match(/Gradle (?\d+)\.\d+/)&.fetch(:major, 0).to_i if status.success? + @gradle_major_version ||= + begin + stdout, _, status = shell.execute([package_management_command, '--version']) + return unless status.success? - 0 + stdout.match(/Gradle (?\d+)\.\d+/)&.[](:major).to_i + end end end end diff --git a/lib/license/finder/ext/package_manager.rb b/lib/license/finder/ext/package_manager.rb new file mode 100644 index 0000000..618b6b3 --- /dev/null +++ b/lib/license/finder/ext/package_manager.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +module LicenseFinder + class PackageManager + def current_packages_with_relations + current_packages + rescue StandardError => error + License::Management.logger.error(error) + raise error unless @prepare_no_fail + + [] + end + end +end -- cgit v1.2.3