Skip to content

Commit f760493

Browse files
committed
[fixes ember-cli#2338] automatically prevent spotlight from indexing dist and tmp
Thanks to @eccegordo for the pro-tip!
1 parent ab98ab0 commit f760493

File tree

4 files changed

+58
-0
lines changed

4 files changed

+58
-0
lines changed

.jshintrc

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"after",
1010
"-Promise"
1111
],
12+
"expr": true,
1213
"proto": true,
1314
"strict": true,
1415
"indent": 2,

lib/models/builder.js

+6
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ var SilentError = require('../errors/silent');
99
var chalk = require('chalk');
1010
var cpd = require('ember-cli-copy-dereference');
1111

12+
var attemptNeverIndex = require('../utilities/attempt-never-index');
13+
1214
var signalsTrapped = false;
1315

1416
module.exports = Task.extend({
@@ -71,6 +73,8 @@ module.exports = Task.extend({
7173
fs.mkdirsSync(outputPath);
7274
}
7375

76+
attemptNeverIndex(outputPath);
77+
7478
resolve(cpd.sync(inputPath, outputPath));
7579
});
7680
},
@@ -109,6 +113,8 @@ module.exports = Task.extend({
109113
args.push(arguments[i]);
110114
}
111115

116+
attemptNeverIndex('tmp');
117+
112118
return this.processAddonBuildSteps('preBuild')
113119
.then(function() {
114120
return self.builder.build.apply(self.builder, args);

lib/utilities/attempt-never-index.js

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
'use strict';
2+
3+
var isDarwin = /darwin/i.test(require('os').type());
4+
var debug = require('debug')('ember-cli:utilities/attempt-metadata-index-file');
5+
6+
module.exports = function(dir) {
7+
var path = dir + '/.metadata_never_index';
8+
9+
if (!isDarwin) {
10+
debug('not darwin, skipping %s (which hints to spotlight to prevent indexing)', path);
11+
return;
12+
}
13+
14+
debug('creating: %s (to prevent spotlight indexing)', path);
15+
16+
var fs = require('fs-extra');
17+
18+
fs.mkdirsSync(dir);
19+
fs.writeFileSync(path);
20+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
'use strict';
2+
3+
var attemptNeverIndex= require('../../../lib/utilities/attempt-never-index');
4+
var quickTemp = require('quick-temp');
5+
var fs = require('fs-extra');
6+
var expect = require('chai').expect;
7+
var isDarwin = /darwin/i.test(require('os').type());
8+
9+
describe('attempt-never-index', function() {
10+
var context = {};
11+
var tmpPath;
12+
before(function() {
13+
tmpPath = quickTemp.makeOrRemake(context, 'attempt-never-index');
14+
});
15+
16+
after(function() {
17+
quickTemp.remove(context, 'attempt-never-index');
18+
});
19+
20+
it('sets the hint to spotlight if possible', function() {
21+
expect(fs.existsSync(tmpPath + '/.metadata_never_index')).to.false;
22+
23+
attemptNeverIndex(tmpPath);
24+
25+
if (isDarwin) {
26+
expect(fs.existsSync(tmpPath + '/.metadata_never_index')).to.true;
27+
} else {
28+
expect(fs.existsSync(tmpPath + '/.metadata_never_index')).to.false;
29+
}
30+
});
31+
});

0 commit comments

Comments
 (0)