summaryrefslogtreecommitdiff
path: root/vendor/gems/bundler-checksum/lib/bundler/checksum
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/gems/bundler-checksum/lib/bundler/checksum')
-rw-r--r--vendor/gems/bundler-checksum/lib/bundler/checksum/command.rb27
-rw-r--r--vendor/gems/bundler-checksum/lib/bundler/checksum/command/helper.rb28
-rw-r--r--vendor/gems/bundler-checksum/lib/bundler/checksum/command/init.rb83
-rw-r--r--vendor/gems/bundler-checksum/lib/bundler/checksum/command/verify.rb52
-rw-r--r--vendor/gems/bundler-checksum/lib/bundler/checksum/version.rb8
5 files changed, 0 insertions, 198 deletions
diff --git a/vendor/gems/bundler-checksum/lib/bundler/checksum/command.rb b/vendor/gems/bundler-checksum/lib/bundler/checksum/command.rb
deleted file mode 100644
index 438f41f6e69..00000000000
--- a/vendor/gems/bundler-checksum/lib/bundler/checksum/command.rb
+++ /dev/null
@@ -1,27 +0,0 @@
-# frozen_string_literal: true
-
-module Bundler::Checksum
- module Command
- autoload :Init, File.expand_path("command/init", __dir__)
- autoload :Verify, File.expand_path("command/verify", __dir__)
- autoload :Helper, File.expand_path("command/helper", __dir__)
-
- def self.execute(args)
- if args.empty?
- $stderr.puts 'A command must be given [init,update,verify]'
- end
-
- if args.first == 'init'
- Init.execute
- elsif args.first == 'update'
- $stderr.puts 'Not implemented, please use init'
- elsif args.first == 'verify'
- verified = Verify.execute
-
- unless verified
- exit 1
- end
- end
- end
- end
-end
diff --git a/vendor/gems/bundler-checksum/lib/bundler/checksum/command/helper.rb b/vendor/gems/bundler-checksum/lib/bundler/checksum/command/helper.rb
deleted file mode 100644
index fa06bfe3da4..00000000000
--- a/vendor/gems/bundler-checksum/lib/bundler/checksum/command/helper.rb
+++ /dev/null
@@ -1,28 +0,0 @@
-# frozen_string_literal: true
-
-require 'json'
-require 'net/http'
-
-module Bundler::Checksum::Command
- module Helper
- extend self
-
- def remote_checksums_for_gem(gem_name, gem_version)
- response = Net::HTTP.get_response(URI(
- "https://rubygems.org/api/v1/versions/#{gem_name}.json"
- ))
-
- return [] unless response.code == '200'
-
- gem_candidates = JSON.parse(response.body, symbolize_names: true)
- gem_candidates.select! { |g| g[:number] == gem_version.to_s }
-
- gem_candidates.map {
- |g| {:name => gem_name, :version => gem_version, :platform => g[:platform], :checksum => g[:sha]}
- }
-
- rescue JSON::ParserError
- []
- end
- end
-end
diff --git a/vendor/gems/bundler-checksum/lib/bundler/checksum/command/init.rb b/vendor/gems/bundler-checksum/lib/bundler/checksum/command/init.rb
deleted file mode 100644
index 47a9b676f1d..00000000000
--- a/vendor/gems/bundler-checksum/lib/bundler/checksum/command/init.rb
+++ /dev/null
@@ -1,83 +0,0 @@
-# frozen_string_literal: true
-
-require 'openssl'
-
-module Bundler::Checksum::Command
- module Init
- extend self
-
- def execute
- $stderr.puts "Initializing checksum file #{checksum_file}"
-
- checksums = []
-
- compact_index_cache = Bundler::Fetcher::CompactIndex
- .new(nil, Bundler::Source::Rubygems::Remote.new(Bundler::URI("https://rubygems.org")), nil)
- .send(:compact_index_client)
- .instance_variable_get(:@cache)
-
- Bundler.definition.resolve.sort_by(&:name).each do |spec|
- next unless spec.source.is_a?(Bundler::Source::Rubygems)
- spec_identifier = "#{spec.name}==#{spec.version}"
-
- previous_checksum = previous_checksums.select do |checksum|
- checksum[:name] == spec.name && checksum[:version] == spec.version.to_s
- end
-
- if !previous_checksum.empty?
- $stderr.puts "Using #{spec_identifier}"
- checksums += previous_checksum
-
- next
- end
-
- $stderr.puts "Adding #{spec_identifier}"
-
- compact_index_dependencies = compact_index_cache.dependencies(spec.name).select { |item| item.first == spec.version.to_s }
-
- if !compact_index_dependencies.empty?
- compact_index_checksums = compact_index_dependencies.map do |version, platform, dependencies, requirements|
- {
- name: spec.name,
- version: spec.version.to_s,
- platform: Gem::Platform.new(platform).to_s,
- checksum: requirements.detect { |requirement| requirement.first == 'checksum' }.flatten[1]
- }
- end
-
- checksums += compact_index_checksums.sort_by { |hash| hash.values }
- else
- remote_checksum = Helper.remote_checksums_for_gem(spec.name, spec.version)
-
- if remote_checksum.empty?
- raise "#{spec.name} #{spec.version} not found on Rubygems!"
- end
-
- checksums += remote_checksum.sort_by { |hash| hash.values }
- end
- end
-
- File.write(checksum_file, JSON.generate(checksums, array_nl: "\n") + "\n")
- end
-
- private
-
- def previous_checksums
- @previous_checksums ||=
- if File.exist?(checksum_file)
- ::Bundler::Checksum.checksums_from_file
- else
- []
- end
- end
-
- def checksum_file
- ::Bundler::Checksum.checksum_file
- end
-
- def lockfile
- lockfile_path = Bundler.default_lockfile
- lockfile = Bundler::LockfileParser.new(Bundler.read_file(lockfile_path))
- end
- end
-end
diff --git a/vendor/gems/bundler-checksum/lib/bundler/checksum/command/verify.rb b/vendor/gems/bundler-checksum/lib/bundler/checksum/command/verify.rb
deleted file mode 100644
index ba2eea6ea0c..00000000000
--- a/vendor/gems/bundler-checksum/lib/bundler/checksum/command/verify.rb
+++ /dev/null
@@ -1,52 +0,0 @@
-# frozen_string_literal: true
-
-module Bundler::Checksum::Command
- module Verify
- extend self
-
- def execute
- $stderr.puts 'Verifying bundle checksums'
-
- verified = true
-
- local_checksums.each do |gem|
- name = gem.fetch(:name)
- version = gem.fetch(:version)
- platform = gem.fetch(:platform)
- checksum = gem.fetch(:checksum)
-
- $stderr.puts "Verifying #{name}==#{version} #{platform}"
- unless validate_gem_checksum(name, version, platform, checksum)
- verified = false
- end
- end
-
- verified
- end
-
- private
-
- def local_checksums
- ::Bundler::Checksum.checksums_from_file
- end
-
- def validate_gem_checksum(gem_name, gem_version, gem_platform, local_checksum)
- remote_checksums = Helper.remote_checksums_for_gem(gem_name, gem_version)
- if remote_checksums.empty?
- $stderr.puts "#{gem_name} #{gem_version} not found on Rubygems, skipping"
- return false
- end
-
- remote_platform_checksum = remote_checksums.find { |g| g[:name] == gem_name && g[:platform] == gem_platform.to_s }
-
- if local_checksum == remote_platform_checksum[:checksum]
- true
- else
- $stderr.puts "Gem #{gem_name} #{gem_version} #{gem_platform} failed checksum verification"
- $stderr.puts "LOCAL: #{local_checksum}"
- $stderr.puts "REMOTE: #{remote_platform_checksum[:checksum]}"
- return false
- end
- end
- end
-end
diff --git a/vendor/gems/bundler-checksum/lib/bundler/checksum/version.rb b/vendor/gems/bundler-checksum/lib/bundler/checksum/version.rb
deleted file mode 100644
index 41e958b2db9..00000000000
--- a/vendor/gems/bundler-checksum/lib/bundler/checksum/version.rb
+++ /dev/null
@@ -1,8 +0,0 @@
-# frozen_string_literal: true
-
-module Bundler
- module Checksum
- # bundler-checksum version
- VERSION = '0.1.0'
- end
-end