X7ROOT File Manager
Current Path:
/opt/alt/ruby30/share/gems/gems/bundler-2.2.33/lib/bundler/cli
opt
/
alt
/
ruby30
/
share
/
gems
/
gems
/
bundler-2.2.33
/
lib
/
bundler
/
cli
/
ðŸ“
..
📄
add.rb
(1.46 KB)
📄
binstubs.rb
(1.74 KB)
📄
cache.rb
(1.1 KB)
📄
check.rb
(1.28 KB)
📄
clean.rb
(608 B)
📄
common.rb
(4.52 KB)
📄
config.rb
(5.87 KB)
📄
console.rb
(1.05 KB)
📄
doctor.rb
(4.24 KB)
📄
exec.rb
(2.35 KB)
📄
fund.rb
(900 B)
📄
gem.rb
(15 KB)
📄
info.rb
(2.96 KB)
📄
init.rb
(1.13 KB)
📄
inject.rb
(2.12 KB)
📄
install.rb
(8.34 KB)
📄
issue.rb
(1.32 KB)
📄
list.rb
(2.01 KB)
📄
lock.rb
(1.88 KB)
📄
open.rb
(986 B)
📄
outdated.rb
(9.03 KB)
📄
platform.rb
(1.38 KB)
📄
plugin.rb
(1.72 KB)
📄
pristine.rb
(1.64 KB)
📄
remove.rb
(351 B)
📄
show.rb
(2.23 KB)
📄
update.rb
(3.98 KB)
📄
viz.rb
(1.06 KB)
Editing: doctor.rb
# frozen_string_literal: true require "rbconfig" require "shellwords" module Bundler class CLI::Doctor DARWIN_REGEX = /\s+(.+) \(compatibility /.freeze LDD_REGEX = /\t\S+ => (\S+) \(\S+\)/.freeze attr_reader :options def initialize(options) @options = options end def otool_available? Bundler.which("otool") end def ldd_available? Bundler.which("ldd") end def dylibs_darwin(path) output = `/usr/bin/otool -L #{path.shellescape}`.chomp dylibs = output.split("\n")[1..-1].map {|l| l.match(DARWIN_REGEX).captures[0] }.uniq # ignore @rpath and friends dylibs.reject {|dylib| dylib.start_with? "@" } end def dylibs_ldd(path) output = `/usr/bin/ldd #{path.shellescape}`.chomp output.split("\n").map do |l| match = l.match(LDD_REGEX) next if match.nil? match.captures[0] end.compact end def dylibs(path) case RbConfig::CONFIG["host_os"] when /darwin/ return [] unless otool_available? dylibs_darwin(path) when /(linux|solaris|bsd)/ return [] unless ldd_available? dylibs_ldd(path) else # Windows, etc. Bundler.ui.warn("Dynamic library check not supported on this platform.") [] end end def bundles_for_gem(spec) Dir.glob("#{spec.full_gem_path}/**/*.bundle") end def check! require_relative "check" Bundler::CLI::Check.new({}).run end def run Bundler.ui.level = "warn" if options[:quiet] Bundler.settings.validate! check! definition = Bundler.definition broken_links = {} definition.specs.each do |spec| bundles_for_gem(spec).each do |bundle| bad_paths = dylibs(bundle).select {|f| !File.exist?(f) } if bad_paths.any? broken_links[spec] ||= [] broken_links[spec].concat(bad_paths) end end end permissions_valid = check_home_permissions if broken_links.any? message = "The following gems are missing OS dependencies:" broken_links.map do |spec, paths| paths.uniq.map do |path| "\n * #{spec.name}: #{path}" end end.flatten.sort.each {|m| message += m } raise ProductionError, message elsif !permissions_valid Bundler.ui.info "No issues found with the installed bundle" end end private def check_home_permissions require "find" files_not_readable_or_writable = [] files_not_rw_and_owned_by_different_user = [] files_not_owned_by_current_user_but_still_rw = [] broken_symlinks = [] Find.find(Bundler.bundle_path.to_s).each do |f| if !File.exist?(f) broken_symlinks << f elsif !File.writable?(f) || !File.readable?(f) if File.stat(f).uid != Process.uid files_not_rw_and_owned_by_different_user << f else files_not_readable_or_writable << f end elsif File.stat(f).uid != Process.uid files_not_owned_by_current_user_but_still_rw << f end end ok = true if broken_symlinks.any? Bundler.ui.warn "Broken links exist in the Bundler home. Please report them to the offending gem's upstream repo. These files are:\n - #{broken_symlinks.join("\n - ")}" ok = false end if files_not_owned_by_current_user_but_still_rw.any? Bundler.ui.warn "Files exist in the Bundler home that are owned by another " \ "user, but are still readable/writable. These files are:\n - #{files_not_owned_by_current_user_but_still_rw.join("\n - ")}" ok = false end if files_not_rw_and_owned_by_different_user.any? Bundler.ui.warn "Files exist in the Bundler home that are owned by another " \ "user, and are not readable/writable. These files are:\n - #{files_not_rw_and_owned_by_different_user.join("\n - ")}" ok = false end if files_not_readable_or_writable.any? Bundler.ui.warn "Files exist in the Bundler home that are not " \ "readable/writable by the current user. These files are:\n - #{files_not_readable_or_writable.join("\n - ")}" ok = false end ok end end end
Upload File
Create Folder