class PodBuilder::Command::InstallSources
Public Class Methods
call()
click to toggle source
# File lib/pod_builder/command/install_sources.rb, line 6 def self.call Configuration.check_inited if Configuration.build_using_repo_paths raise "\n\nSource cannot be installed because lldb shenanigans not supported when 'build_using_repo_paths' is enabled".red end PodBuilder::prepare_basepath install_update_repo = OPTIONS.fetch(:update_repos, true) installer, analyzer = Analyze.installer_at(PodBuilder::basepath, install_update_repo) podfile_items = Analyze.podfile_items(installer, analyzer).select { |x| !x.is_prebuilt } podspec_names = podfile_items.map(&:podspec_name) base_path = PodBuilder::prebuiltpath framework_files = Dir.glob("#{base_path}/**/*.framework") framework_files.each do |path| rel_path = Pathname.new(path).relative_path_from(Pathname.new(base_path)).to_s if podfile_spec = podfile_items.detect { |x| "#{x.root_name}/#{x.prebuilt_rel_path}" == rel_path } update_repo(podfile_spec) end end Clean::install_sources(podfile_items) ARGV << PodBuilder::basepath("Sources") puts "\n\nš done!\n".green return 0 end
Private Class Methods
git_hard_checkout_cmd(spec)
click to toggle source
# File lib/pod_builder/command/install_sources.rb, line 63 def self.git_hard_checkout_cmd(spec) prefix = "git fetch --all --tags --prune; git reset --hard" if spec.tag return "#{prefix} tags/#{spec.tag}" end if spec.commit return "#{prefix} #{spec.commit}" end if spec.branch return "#{prefix} origin/#{spec.branch}" end return nil end
update_repo(spec)
click to toggle source
# File lib/pod_builder/command/install_sources.rb, line 40 def self.update_repo(spec) if spec.path != nil || spec.podspec_path != nil return end dest_path = PodBuilder::basepath("Sources") FileUtils.mkdir_p(dest_path) current_dir = Dir.pwd Dir.chdir(dest_path) repo_dir = File.join(dest_path, spec.podspec_name) if !File.directory?(repo_dir) raise "\n\nFailed cloning #{spec.name}".red if !system("git clone #{spec.repo} #{spec.podspec_name}") end Dir.chdir(repo_dir) puts "Checking out #{spec.podspec_name}".yellow raise "\n\nFailed cheking out #{spec.name}".red if !system(git_hard_checkout_cmd(spec)) Dir.chdir(current_dir) end