lib/cc/analyzer/mounted_path.rb (64 lines of code) (raw):
module CC
module Analyzer
class MountedPath
DEFAULT_CODECLIMATE_TMP = "/tmp/cc".freeze
def self.code
host_prefix = ENV["CODECLIMATE_CODE"]
host_prefix ||= ENV["CODE_PATH"] # deprecated
if ENV["CODECLIMATE_DOCKER"]
new(host_prefix, "/code")
else
host_prefix ||= Dir.pwd
new(host_prefix, host_prefix)
end
end
def self.tmp
host_prefix = ENV["CODECLIMATE_TMP"]
host_prefix ||= DEFAULT_CODECLIMATE_TMP
if ENV["CODECLIMATE_DOCKER"]
new(host_prefix, "/tmp/cc")
else
new(host_prefix, host_prefix)
end
end
def initialize(host_prefix, container_prefix, path = nil)
@host_prefix = host_prefix
@container_prefix = container_prefix
@path = path
end
def host_path
if path
File.join(host_prefix, path)
else
host_prefix
end
end
def container_path
if path
File.join(container_prefix, path)
else
container_prefix
end
end
def join(path)
@path = path
self
end
def file?
File.file?(container_path)
end
def read
File.read(container_path)
end
def write(content)
FileUtils.mkdir_p(File.dirname(container_path))
File.write(container_path, content)
end
def delete
File.delete(container_path)
end
private
attr_reader :host_prefix, :container_prefix, :path
end
end
end