Skip to content

Commit

Permalink
[CHANGED] Uses correct package management command for pip based on op…
Browse files Browse the repository at this point in the history
…tions that are passed in

Signed-off-by: Debbie Chen <dechen@pivotal.io>
  • Loading branch information
xtreme-shane-lattanzio authored and xtreme-debbie-chen committed Feb 12, 2020
1 parent de82cff commit 3f4034a
Show file tree
Hide file tree
Showing 34 changed files with 96 additions and 92 deletions.
2 changes: 1 addition & 1 deletion Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ task :check_dependencies do
require './lib/license_finder'
satisfied = true
LicenseFinder::Scanner::PACKAGE_MANAGERS.each do |package_manager|
satisfied = false unless package_manager.installed?(LicenseFinder::Logger.new(LicenseFinder::Logger::MODE_INFO))
satisfied = false unless package_manager.new(project_path: Pathname.new('')).installed?(LicenseFinder::Logger.new(LicenseFinder::Logger::MODE_INFO))
end
STDOUT.flush
exit 1 unless satisfied
Expand Down
34 changes: 17 additions & 17 deletions lib/license_finder/package_manager.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,32 +22,32 @@ class << self
def takes_priority_over
nil
end
end

def installed?(logger = Core.default_logger)
if package_management_command.nil?
logger.debug self, 'no command defined' # TODO: comment me out
true
elsif command_exists?(package_management_command)
logger.debug self, 'is installed', color: :green
true
else
logger.info self, 'is not installed', color: :red
false
end
def installed?(logger = Core.default_logger)
if package_management_command.nil?
logger.debug self.class, 'no command defined' # TODO: comment me out
true
elsif command_exists?(package_management_command)
logger.debug self.class, 'is installed', color: :green
true
else
logger.info self.class, 'is not installed', color: :red
false
end
end

# see class description
def package_management_command
nil
end
# see class description
def package_management_command
nil
end

# see class description
def prepare_command
nil
end

def self.command_exists?(command)
def command_exists?(command)
_stdout, _stderr, status =
if LicenseFinder::Platform.windows?
Cmd.run("where #{command}")
Expand Down Expand Up @@ -128,7 +128,7 @@ def log_to_file(contents)
FileUtils.mkdir_p @log_directory

# replace whitespace with underscores and remove slashes
log_file_name = self.class.package_management_command&.gsub(/\s/, '_')&.gsub(%r{/}, '')
log_file_name = package_management_command&.gsub(/\s/, '_')&.gsub(%r{/}, '')
log_file = File.join(@log_directory, "prepare_#{log_file_name || 'errors'}.log")

File.open(log_file, 'w') do |f|
Expand Down
4 changes: 2 additions & 2 deletions lib/license_finder/package_managers/bower.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ def current_packages
end
end

def self.package_management_command
def package_management_command
'bower'
end

Expand All @@ -25,7 +25,7 @@ def possible_package_paths
private

def bower_output
command = "#{Bower.package_management_command} list --json -l action --allow-root"
command = "#{package_management_command} list --json -l action --allow-root"
stdout, stderr, status = Dir.chdir(project_path) { Cmd.run(command) }
raise "Command '#{command}' failed to execute: #{stderr}" unless status.success?

Expand Down
2 changes: 1 addition & 1 deletion lib/license_finder/package_managers/bundler.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def current_packages
end
end

def self.package_management_command
def package_management_command
'bundle'
end

Expand Down
4 changes: 2 additions & 2 deletions lib/license_finder/package_managers/cargo.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ def current_packages
end
end

def self.package_management_command
def package_management_command
'cargo'
end

Expand All @@ -25,7 +25,7 @@ def possible_package_paths
private

def cargo_output
command = "#{Cargo.package_management_command} metadata --format-version=1"
command = "#{package_management_command} metadata --format-version=1"

stdout, stderr, status = Dir.chdir(project_path) { Cmd.run(command) }
raise "Command '#{command}' failed to execute: #{stderr}" unless status.success?
Expand Down
2 changes: 1 addition & 1 deletion lib/license_finder/package_managers/carthage.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def current_packages
end
end

def self.package_management_command
def package_management_command
LicenseFinder::Platform.darwin? ? 'carthage' : nil
end

Expand Down
2 changes: 1 addition & 1 deletion lib/license_finder/package_managers/cocoa_pods.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def current_packages
end
end

def self.package_management_command
def package_management_command
LicenseFinder::Platform.darwin? ? 'pod' : nil
end

Expand Down
2 changes: 1 addition & 1 deletion lib/license_finder/package_managers/composer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def prepare
raise "Prepare command '#{Composer.prepare_command}' failed" unless @prepare_no_fail
end

def self.package_management_command
def package_management_command
'composer'
end

Expand Down
2 changes: 1 addition & 1 deletion lib/license_finder/package_managers/dep.rb
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ def prepare_command
'dep ensure -vendor-only'
end

def self.package_management_command
def package_management_command
'dep'
end
end
Expand Down
4 changes: 2 additions & 2 deletions lib/license_finder/package_managers/dotnet.rb
Original file line number Diff line number Diff line change
Expand Up @@ -71,12 +71,12 @@ def asset_files
Dir[project_path.join('**/project.assets.json')]
end

def self.package_management_command
def package_management_command
'dotnet'
end

def prepare_command
"#{Dotnet.package_management_command} restore"
"#{package_management_command} restore"
end
end
end
2 changes: 1 addition & 1 deletion lib/license_finder/package_managers/glide.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def self.takes_priority_over
Go15VendorExperiment
end

def self.package_management_command
def package_management_command
'glide'
end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def current_packages
end
end

def self.package_management_command
def package_management_command
'go'
end

Expand Down
2 changes: 1 addition & 1 deletion lib/license_finder/package_managers/go_dep.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ def possible_package_paths
[project_path.join('Godeps/Godeps.json')]
end

def self.package_management_command
def package_management_command
'godep'
end

Expand Down
2 changes: 1 addition & 1 deletion lib/license_finder/package_managers/go_workspace.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ def initialize(options = {})
@strict_matching = options[:strict_matching]
end

def self.package_management_command
def package_management_command
'go'
end

Expand Down
2 changes: 1 addition & 1 deletion lib/license_finder/package_managers/govendor.rb
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ def self.takes_priority_over
Go15VendorExperiment
end

def self.package_management_command
def package_management_command
'govendor'
end

Expand Down
2 changes: 1 addition & 1 deletion lib/license_finder/package_managers/gvt.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ def possible_package_paths
[Pathname(potential_path)]
end

def self.package_management_command
def package_management_command
'gvt'
end

Expand Down
12 changes: 6 additions & 6 deletions lib/license_finder/package_managers/mix.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module LicenseFinder
class Mix < PackageManager
def initialize(options = {})
super
@command = options[:mix_command] || Mix.package_management_command
@command = options[:mix_command] || package_management_command
@elixir_command = options[:elixir_command] || 'elixir'
@deps_path = Pathname(options[:mix_deps_dir] || 'deps')
end
Expand All @@ -26,7 +26,7 @@ def licenses(name)
licenses_by_package.fetch(name, ['license is not in deps'])
end

def self.package_management_command
def package_management_command
'mix'
end

Expand All @@ -42,15 +42,15 @@ def possible_package_paths
[project_path.join('mix.exs')]
end

def self.installed?(logger = Core.default_logger)
def installed?(logger = Core.default_logger)
if package_management_command.nil?
logger.debug self, 'no command defined'
logger.debug self.class, 'no command defined'
true
elsif command_exists?('elixir') && command_exists?('mix')
logger.debug self, 'is installed', color: :green
logger.debug self.class, 'is installed', color: :green
true
else
logger.info self, '(elixir) is not installed', color: :red
logger.info self.class, '(elixir) is not installed', color: :red
false
end
end
Expand Down
4 changes: 2 additions & 2 deletions lib/license_finder/package_managers/npm.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ def current_packages
NpmPackage.packages_from_json(npm_json, detected_package_path)
end

def self.package_management_command
def package_management_command
'npm'
end

Expand All @@ -34,7 +34,7 @@ def prepare
private

def npm_json
command = "#{NPM.package_management_command} list --json --long#{production_flag}"
command = "#{package_management_command} list --json --long#{production_flag}"
stdout, stderr, status = Dir.chdir(project_path) { Cmd.run(command) }
# we can try and continue if we got an exit status 1 - unmet peer dependency
raise "Command '#{command}' failed to execute: #{stderr}" if !status.success? && status.exitstatus != 1
Expand Down
12 changes: 6 additions & 6 deletions lib/license_finder/package_managers/nuget.rb
Original file line number Diff line number Diff line change
Expand Up @@ -71,27 +71,27 @@ def dependencies
assemblies.flat_map(&:dependencies)
end

def self.package_management_command
def package_management_command
return 'nuget' if LicenseFinder::Platform.windows?

'mono /usr/local/bin/nuget.exe'
end

def prepare_command
"#{Nuget.package_management_command} restore"
"#{package_management_command} restore"
end

def self.installed?(logger = Core.default_logger)
def installed?(logger = Core.default_logger)
_stdout, _stderr, status = Cmd.run(nuget_check)
if status.success?
logger.debug self, 'is installed', color: :green
logger.debug self.class, 'is installed', color: :green
else
logger.info self, 'is not installed', color: :red
logger.info self.class, 'is not installed', color: :red
end
status.success?
end

def self.nuget_check
def nuget_check
return 'where nuget' if LicenseFinder::Platform.windows?

'which mono && ls /usr/local/bin/nuget.exe'
Expand Down
12 changes: 5 additions & 7 deletions lib/license_finder/package_managers/pip.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,12 @@

module LicenseFinder
class Pip < PackageManager
DEFAULT_VERSION = '2'

def initialize(options = {})
super
@requirements_path = options[:pip_requirements_path] || Pathname('requirements.txt')
@python_version = options[:python_version] || '2'
@python_version = options[:python_version] || DEFAULT_VERSION
raise "Invalid python version \'#{@python_version}\'. Valid versions are '2' or '3'." unless %w[2 3].include?(@python_version)
end

Expand All @@ -24,12 +26,8 @@ def current_packages
end
end

# Used to detect if installed, but this is a static method and the options aren't passed
# so we don't know which python version was specified. Will fail later if the expected version
# isn't installed. The Dockerfile now installs both versions so using the image is safe.
# TODO: Refactor PackageManager.installed?() to pass in the options?
def self.package_management_command
'pip2'
def package_management_command
"pip#{@python_version}"
end

def prepare_command
Expand Down
4 changes: 2 additions & 2 deletions lib/license_finder/package_managers/rebar.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ module LicenseFinder
class Rebar < PackageManager
def initialize(options = {})
super
@command = options[:rebar_command] || Rebar.package_management_command
@command = options[:rebar_command] || package_management_command
@deps_path = Pathname(options[:rebar_deps_dir] || 'deps')
end

Expand All @@ -20,7 +20,7 @@ def current_packages
end
end

def self.package_management_command
def package_management_command
'rebar'
end

Expand Down
2 changes: 1 addition & 1 deletion lib/license_finder/package_managers/yarn.rb
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ def self.takes_priority_over
NPM
end

def self.package_management_command
def package_management_command
'yarn'
end

Expand Down
2 changes: 1 addition & 1 deletion lib/license_finder/scanner.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ def initialize(config = { project_path: Pathname.new('') })

def active_packages
package_managers = active_package_managers
installed_package_managers = package_managers.select { |pm| pm.class.installed?(@logger) }
installed_package_managers = package_managers.select { |pm| pm.installed?(@logger) }
installed_package_managers.flat_map(&:current_packages_with_relations)
end

Expand Down
Loading

0 comments on commit 3f4034a

Please sign in to comment.