Class: Pod::Command
- Inherits:
-
CLAide::Command
- Object
- CLAide::Command
- Pod::Command
- Includes:
- Options, Pod::Config::Mixin
- Defined in:
- lib/cocoapods/command.rb,
lib/cocoapods/command/env.rb,
lib/cocoapods/command/ipc.rb,
lib/cocoapods/command/lib.rb,
lib/cocoapods/command/init.rb,
lib/cocoapods/command/list.rb,
lib/cocoapods/command/repo.rb,
lib/cocoapods/command/spec.rb,
lib/cocoapods/command/cache.rb,
lib/cocoapods/command/setup.rb,
lib/cocoapods/command/update.rb,
lib/cocoapods/command/install.rb,
lib/cocoapods/command/ipc/list.rb,
lib/cocoapods/command/ipc/repl.rb,
lib/cocoapods/command/ipc/spec.rb,
lib/cocoapods/command/lib/lint.rb,
lib/cocoapods/command/outdated.rb,
lib/cocoapods/command/repo/add.rb,
lib/cocoapods/command/spec/cat.rb,
lib/cocoapods/command/repo/lint.rb,
lib/cocoapods/command/repo/list.rb,
lib/cocoapods/command/repo/push.rb,
lib/cocoapods/command/spec/edit.rb,
lib/cocoapods/command/spec/lint.rb,
lib/cocoapods/command/cache/list.rb,
lib/cocoapods/command/lib/create.rb,
lib/cocoapods/command/spec/which.rb,
lib/cocoapods/command/cache/clean.rb,
lib/cocoapods/command/ipc/podfile.rb,
lib/cocoapods/command/repo/remove.rb,
lib/cocoapods/command/repo/update.rb,
lib/cocoapods/command/spec/create.rb,
lib/cocoapods/command/repo/add_cdn.rb,
lib/cocoapods/command/ipc/podfile_json.rb,
lib/cocoapods/command/options/repo_update.rb,
lib/cocoapods/command/ipc/update_search_index.rb,
lib/cocoapods/command/options/project_directory.rb
Direct Known Subclasses
Cache, Env, IPC, Init, Install, Lib, List, Outdated, Repo, Setup, Spec, Update
Defined Under Namespace
Modules: Options Classes: Cache, Env, IPC, Init, Install, Lib, List, Outdated, Repo, Setup, Spec, Update
Class Method Summary collapse
-
.ensure_not_root_or_allowed!(argv, uid = Process.uid, is_windows = Gem.win_platform?) ⇒ void
Ensure root user.
-
.git_version ⇒ Gem::Version
private
Returns a new Gem::Version based on the systems
git
version. - .options ⇒ Object
- .report_error(exception) ⇒ Object
- .run(argv) ⇒ Object
-
.verify_minimum_git_version! ⇒ void
private
Checks that the git version is at least 1.8.5.
- .verify_xcode_license_approved! ⇒ Object private
Instance Method Summary collapse
-
#ensure_master_spec_repo_exists! ⇒ void
Ensure that the master spec repo exists.
-
#initialize(argv) ⇒ Command
constructor
A new instance of Command.
- #installer_for_config ⇒ Installer private
-
#verify_lockfile_exists! ⇒ void
private
Checks that the lockfile exists.
-
#verify_podfile_exists! ⇒ void
private
Checks that the podfile exists.
Methods included from Pod::Config::Mixin
Constructor Details
#initialize(argv) ⇒ Command
If a command is run inside another one some settings which where true might return false.
We should probably not even load colored unless needed.
Move silent flag to CLAide.
It is important that the commands don't override the default settings if their flag is missing (i.e. their value is nil)
Returns a new instance of Command.
85 86 87 88 89 90 91 92 93 94 |
# File 'lib/cocoapods/command.rb', line 85 def initialize(argv) super config.silent = argv.flag?('silent', config.silent) config.allow_root = argv.flag?('allow-root', config.allow_root) config.verbose = self.verbose? unless verbose.nil? unless self.ansi_output? Colored2.disable! String.send(:define_method, :colorize) { |string, _| string } end end |
Class Method Details
.ensure_not_root_or_allowed!(argv, uid = Process.uid, is_windows = Gem.win_platform?) ⇒ void
This method returns an undefined value.
Ensure root user
100 101 102 103 |
# File 'lib/cocoapods/command.rb', line 100 def self.ensure_not_root_or_allowed!(argv, uid = Process.uid, is_windows = Gem.win_platform?) root_allowed = argv.include?('--allow-root') || !ENV['COCOAPODS_ALLOW_ROOT'].nil? help! 'You cannot run CocoaPods as root.' unless root_allowed || uid != 0 || is_windows end |
.git_version ⇒ Gem::Version (private)
Returns a new Gem::Version based on the systems git
version.
125 126 127 128 129 130 131 |
# File 'lib/cocoapods/command.rb', line 125 def self.git_version raw_version = Executable.capture_command('git', ['--version']).first unless match = raw_version.scan(/\d+\.\d+\.\d+/).first raise "Failed to extract git version from `git --version` (#{raw_version.inspect})" end Gem::Version.new(match) end |
.options ⇒ Object
40 41 42 43 44 45 |
# File 'lib/cocoapods/command.rb', line 40 def self. [ ['--allow-root', 'Allows CocoaPods to run as root'], ['--silent', 'Show nothing'], ].concat(super) end |
.report_error(exception) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/cocoapods/command.rb', line 57 def self.report_error(exception) case exception when Interrupt puts '[!] Cancelled'.red Config.instance.verbose? ? raise : exit(1) when SystemExit raise else if ENV['COCOA_PODS_ENV'] != 'development' puts UI::ErrorReport.report(exception) UI::ErrorReport.search_for_exceptions(exception) exit 1 else raise exception end end end |
.run(argv) ⇒ Object
47 48 49 50 51 52 53 54 55 |
# File 'lib/cocoapods/command.rb', line 47 def self.run(argv) ensure_not_root_or_allowed! argv verify_minimum_git_version! verify_xcode_license_approved! super(argv) ensure UI.print_warnings end |
.verify_minimum_git_version! ⇒ void (private)
This method returns an undefined value.
Checks that the git version is at least 1.8.5
139 140 141 142 143 |
# File 'lib/cocoapods/command.rb', line 139 def self.verify_minimum_git_version! if git_version < Gem::Version.new('1.8.5') raise Informative, 'You need at least git version 1.8.5 to use CocoaPods' end end |
.verify_xcode_license_approved! ⇒ Object (private)
177 178 179 180 181 182 183 |
# File 'lib/cocoapods/command.rb', line 177 def self.verify_xcode_license_approved! if `/usr/bin/xcrun clang 2>&1` =~ /license/ && !$?.success? raise Informative, 'You have not agreed to the Xcode license, which ' \ 'you must do to use CocoaPods. Agree to the license by running: ' \ '`xcodebuild -license`.' end end |
Instance Method Details
#ensure_master_spec_repo_exists! ⇒ void
This method returns an undefined value.
Ensure that the master spec repo exists
109 110 111 112 113 |
# File 'lib/cocoapods/command.rb', line 109 def ensure_master_spec_repo_exists! unless config.sources_manager.master_repo_functional? Setup.new(CLAide::ARGV.new([])).run end end |
#installer_for_config ⇒ Installer (private)
Returns a new Installer parametrized from the Pod::Config.
149 150 151 |
# File 'lib/cocoapods/command.rb', line 149 def installer_for_config Installer.new(config.sandbox, config.podfile, config.lockfile) end |
#verify_lockfile_exists! ⇒ void (private)
This method returns an undefined value.
Checks that the lockfile exists.
171 172 173 174 175 |
# File 'lib/cocoapods/command.rb', line 171 def verify_lockfile_exists! unless config.lockfile raise Informative, "No `Podfile.lock' found in the project directory, run `pod install'." end end |
#verify_podfile_exists! ⇒ void (private)
This method returns an undefined value.
Checks that the podfile exists.
159 160 161 162 163 |
# File 'lib/cocoapods/command.rb', line 159 def verify_podfile_exists! unless config.podfile raise Informative, "No `Podfile' found in the project directory." end end |