Commit 5ee28a7c authored by Kyle Fuller's avatar Kyle Fuller

Merge pull request #3119 from CocoaPods/seg-tmpdir

Use proper TMPDIR instead of /tmp
parents 31315a80 955bc272
......@@ -23,6 +23,10 @@ To install release candidates run `[sudo] gem install cocoapods --pre`
[Samuel Giddins](https://github.com/segiddins)
[#2943](https://github.com/CocoaPods/CocoaPods/issues/2943)
* Use the proper `TMPDIR` for the CocoaPods process, instead of blindly using
`/tmp`.
[Samuel Giddins](https://github.com/segiddins)
##### Bug Fixes
* Added support for .tpp C++ header files in specs (previously were getting
......
......@@ -16,6 +16,7 @@ end
module Pod
require 'pathname'
require 'tmpdir'
require 'cocoapods/gem_version'
require 'cocoapods-core'
......
......@@ -97,7 +97,7 @@ module Pod
end
def podspecs_tmp_dir
Pathname(File.join(Pathname.new('/tmp').realpath, '/CocoaPods/Lint_podspec'))
Pathname.new(Dir.tmpdir) + 'CocoaPods/Lint_podspec'
end
end
end
......
......@@ -183,7 +183,7 @@ module Pod
# @return [Pathname] the temporary directory used by the linter.
#
def validation_dir
Pathname.new(File.join(Pathname.new('/tmp').realpath, 'CocoaPods/Lint'))
Pathname(Dir.tmpdir) + 'CocoaPods/Lint'
end
#-------------------------------------------------------------------------#
......@@ -510,7 +510,7 @@ module Pod
l.include?('note: ') && (l !~ /expanded from macro/)
end
selected_lines.map do |l|
new = l.gsub(%r{/tmp/CocoaPods/Lint/Pods/}, '')
new = l.gsub(%r{#{validation_dir}/Pods/}, '')
new.gsub!(/^ */, ' ')
end
end
......@@ -521,11 +521,9 @@ module Pod
def xcodebuild
command = 'xcodebuild clean build -target Pods CODE_SIGN_IDENTITY=-'
command << ' -sdk iphonesimulator' if consumer.platform_name == :ios
output, status = _xcodebuild "#{command} 2>&1"
UI.puts command if config.verbose?
output = `#{command} 2>&1`
unless $?.success?
unless status.success?
message = 'Returned a unsuccessful exit code.'
message += ' You can use `--verbose` for more information.' unless config.verbose?
error('xcodebuild', message)
......@@ -534,6 +532,17 @@ module Pod
output
end
# Executes the given command in the current working directory.
#
# @return [(String, Status)] The output of the given command and its
# resulting status.
#
def _xcodebuild(command)
UI.puts command if config.verbose
output = `#{command}`
[output, $?]
end
#-------------------------------------------------------------------------#
end
end
......@@ -72,7 +72,7 @@ module Pod
end
it 'does not update non-git repositories' do
tmp_directory = '/private/tmp/CocoaPods/'
tmp_directory = Pathname(Dir.tmpdir) + 'CocoaPods'
FileUtils.mkdir_p(tmp_directory)
FileUtils.cp_r(ROOT + 'spec/fixtures/spec-repos/test_repo/', tmp_directory)
non_git_repo = tmp_directory + 'test_repo'
......
......@@ -88,7 +88,7 @@ module Pod
validator.quick = true
validator.stubs(:validate_url)
validator.validate
validator.validation_dir.should.be == Pathname.new('/private/tmp/CocoaPods/Lint')
validator.validation_dir.should.be == Pathname.new(Dir.tmpdir) + 'CocoaPods/Lint'
end
end
......@@ -364,7 +364,9 @@ module Pod
validator.stubs(:check_file_patterns)
validator.stubs(:validate_url)
validator.stubs(:`).returns('Output')
$?.stubs(:success?).returns(false)
status = mock
status.stubs(:success?).returns(false)
validator.stubs(:_xcodebuild).returns(['Output', status])
validator.validate
first = validator.results.map(&:to_s).first
first.should.include '[xcodebuild] Returned a unsuccessful exit code'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment