Clean cached asar archives when quitting.

This commit is contained in:
Cheng Zhao 2014-09-25 21:49:01 +08:00
parent d559275711
commit 05317ad81e
2 changed files with 17 additions and 4 deletions

View file

@ -6,12 +6,19 @@ util = require 'util'
# Cache asar archive objects.
cachedArchives = {}
getOrCreateArchive = (p) ->
unless cachedArchives[p]?
cachedArchives[p] = asar.createArchive p
cachedArchives[p]
archive = cachedArchives[p]
return archive if archive?
archive = asar.createArchive p
return false unless archive
cachedArchives[p] = archive
# Clean cache on quit.
process.on 'exit', ->
archive.destroy() for p, archive of cachedArchives
# Separate asar package's path from full path.
splitPath = (p) ->
return [false, p] unless typeof p is 'string'
components = p.split path.sep
for c, i in components by -1
if path.extname(c) is '.asar'