git-linguist: Do not write cache if repo is gone

This commit is contained in:
Vicent Marti
2015-09-28 01:45:04 -07:00
parent 41d438b47e
commit 7c759d4d29

View File

@@ -71,17 +71,20 @@ class GitLinguist
end end
def write_cache(object) def write_cache(object)
tmp_path = Dir::Tmpname.make_tmpname(cache_file, nil) return unless File.directory? @repo_path
begin
tmp_path = Dir::Tmpname.make_tmpname(cache_file, nil)
File.open(tmp_path, "wb") do |f| File.open(tmp_path, "wb") do |f|
marshal = Marshal.dump(object) marshal = Marshal.dump(object)
f.write(Zlib::Deflate.deflate(marshal)) f.write(Zlib::Deflate.deflate(marshal))
end end
File.rename(tmp_path, cache_file) File.rename(tmp_path, cache_file)
tmp_path = nil rescue => e
ensure (File.unlink(tmp_path) rescue nil)
(File.unlink(tmp_path) rescue nil) if tmp_path raise e
end
end end
def load_cache def load_cache