From 47f99cd74e8ba0168ecd9280711e3de862f8cbcf Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Thu, 17 Apr 2014 14:23:04 -0700 Subject: [PATCH 1/7] Store coffee/cson cache in ~/.atom/compile-cache --- src/coffee-cache.coffee | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/coffee-cache.coffee b/src/coffee-cache.coffee index 9653b735d..65a50ed80 100644 --- a/src/coffee-cache.coffee +++ b/src/coffee-cache.coffee @@ -1,14 +1,12 @@ crypto = require 'crypto' -fs = require 'fs' path = require 'path' -os = require 'os' CoffeeScript = require 'coffee-script' CSON = require 'season' +fs = require 'fs-plus' mkdir = require('mkdirp').sync -tmpDir = if process.platform is 'win32' then os.tmpdir() else '/tmp' -cacheDir = path.join(tmpDir, 'atom-compile-cache') +cacheDir = path.join(fs.getHomeDirectory(), 'compile-cache') coffeeCacheDir = path.join(cacheDir, 'coffee') CSON.setCacheDir(path.join(cacheDir, 'cson')) From 8e0a695f7c9171b67b51f5f01ded440d523e6809 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Thu, 17 Apr 2014 14:24:05 -0700 Subject: [PATCH 2/7] Store less cache in ~/.atom/compile-cache --- src/less-compile-cache.coffee | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/less-compile-cache.coffee b/src/less-compile-cache.coffee index feccbac4a..315a0a165 100644 --- a/src/less-compile-cache.coffee +++ b/src/less-compile-cache.coffee @@ -1,16 +1,14 @@ path = require 'path' -os = require 'os' +fs = require 'fs-plus' LessCache = require 'less-cache' {Subscriber} = require 'emissary' -tmpDir = if process.platform is 'win32' then os.tmpdir() else '/tmp' - # {LessCache} wrapper used by {ThemeManager} to read stylesheets. module.exports = class LessCompileCache Subscriber.includeInto(this) - @cacheDir: path.join(tmpDir, 'atom-compile-cache', 'less') + @cacheDir: path.join(fs.getHomeDirectory(), 'compile-cache', 'less') constructor: ({resourcePath, importPaths}) -> @lessSearchPaths = [ From fea958c8e405723a61dc1b5b0f8f0c07c8e96155 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Thu, 17 Apr 2014 14:25:03 -0700 Subject: [PATCH 3/7] Clean ~/.atom/compile-cache --- script/clean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/clean b/script/clean index 499477833..79f31d4b0 100755 --- a/script/clean +++ b/script/clean @@ -23,9 +23,9 @@ var commands = [ [home, '.atom', '.node-gyp'], [home, '.atom', 'storage'], [home, '.atom', '.npm'], + [home, '.atom', 'compile-cache'], [tmpdir, 'atom-build'], [tmpdir, 'atom-cached-atom-shells'], - [tmpdir, 'atom-compile-cache'], ]; var run = function() { var next = commands.shift(); From c156119882c185e5938c16ce288089586d2298b6 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Thu, 17 Apr 2014 14:31:00 -0700 Subject: [PATCH 4/7] Store compiled coffee files with js extension --- src/coffee-cache.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coffee-cache.coffee b/src/coffee-cache.coffee index 65a50ed80..f0e23f136 100644 --- a/src/coffee-cache.coffee +++ b/src/coffee-cache.coffee @@ -12,7 +12,7 @@ CSON.setCacheDir(path.join(cacheDir, 'cson')) getCachePath = (coffee) -> digest = crypto.createHash('sha1').update(coffee, 'utf8').digest('hex') - path.join(coffeeCacheDir, "#{digest}.coffee") + path.join(coffeeCacheDir, "#{digest}.js") getCachedJavaScript = (cachePath) -> if stat = fs.statSyncNoException(cachePath) From b537ba886438f4847c581920c8695a5a8f1ccd23 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Thu, 17 Apr 2014 18:34:10 -0700 Subject: [PATCH 5/7] Use fs-plus isFileSync method --- src/coffee-cache.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coffee-cache.coffee b/src/coffee-cache.coffee index f0e23f136..687adb04a 100644 --- a/src/coffee-cache.coffee +++ b/src/coffee-cache.coffee @@ -15,9 +15,9 @@ getCachePath = (coffee) -> path.join(coffeeCacheDir, "#{digest}.js") getCachedJavaScript = (cachePath) -> - if stat = fs.statSyncNoException(cachePath) + if fs.isFileSync(cachePath) try - fs.readFileSync(cachePath, 'utf8') if stat.isFile() + fs.readFileSync(cachePath, 'utf8') compileCoffeeScript = (coffee, filePath, cachePath) -> {js,v3SourceMap} = CoffeeScript.compile(coffee, filename: filePath, sourceMap: true) From 2e71e2fa4b4bb2494873381961c5d67257b9a002 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Thu, 17 Apr 2014 18:34:59 -0700 Subject: [PATCH 6/7] Remove unneeded mkdir call --- src/coffee-cache.coffee | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/coffee-cache.coffee b/src/coffee-cache.coffee index 687adb04a..1abc8cc07 100644 --- a/src/coffee-cache.coffee +++ b/src/coffee-cache.coffee @@ -4,7 +4,6 @@ path = require 'path' CoffeeScript = require 'coffee-script' CSON = require 'season' fs = require 'fs-plus' -mkdir = require('mkdirp').sync cacheDir = path.join(fs.getHomeDirectory(), 'compile-cache') coffeeCacheDir = path.join(cacheDir, 'coffee') @@ -25,7 +24,6 @@ compileCoffeeScript = (coffee, filePath, cachePath) -> if btoa? and JSON? and unescape? and encodeURIComponent? js = "#{js}\n//# sourceMappingURL=data:application/json;base64,#{btoa unescape encodeURIComponent v3SourceMap}\n//# sourceURL=#{filePath}" try - mkdir(path.dirname(cachePath)) fs.writeFileSync(cachePath, js) js From 87afa50477d22c8d86ed090b2f7c73e1a2969a04 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Thu, 17 Apr 2014 18:35:54 -0700 Subject: [PATCH 7/7] :lipstick: Add space after comma --- src/coffee-cache.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coffee-cache.coffee b/src/coffee-cache.coffee index 1abc8cc07..1cb979286 100644 --- a/src/coffee-cache.coffee +++ b/src/coffee-cache.coffee @@ -19,7 +19,7 @@ getCachedJavaScript = (cachePath) -> fs.readFileSync(cachePath, 'utf8') compileCoffeeScript = (coffee, filePath, cachePath) -> - {js,v3SourceMap} = CoffeeScript.compile(coffee, filename: filePath, sourceMap: true) + {js, v3SourceMap} = CoffeeScript.compile(coffee, filename: filePath, sourceMap: true) # Include source map in the web page environment. if btoa? and JSON? and unescape? and encodeURIComponent? js = "#{js}\n//# sourceMappingURL=data:application/json;base64,#{btoa unescape encodeURIComponent v3SourceMap}\n//# sourceURL=#{filePath}"