Skip to content

Commit 28a8070

Browse files
committed
Merge pull request nodegit#781 from nodegit/clean-publish
Clean node-modules before publishing to node-pre-gyp
2 parents b259b05 + 564d37c commit 28a8070

File tree

4 files changed

+6
-140
lines changed

4 files changed

+6
-140
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ after_success:
5757
- if [ -n "$TRAVIS_TAG" ]; then
5858
npm install -g node-pre-gyp
5959
npm install -g aws-sdk
60+
node lifecycleScripts/clean
6061
node-pre-gyp package
6162
node-pre-gyp publish
6263
fi

appveyor.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ test_script:
4747
on_success:
4848
- IF %APPVEYOR_REPO_TAG%==true npm install -g node-pre-gyp
4949
- IF %APPVEYOR_REPO_TAG%==true npm install -g aws-sdk
50+
- IF %APPVEYOR_REPO_TAG%==true node lifecycleScripts\clean
5051
- IF %APPVEYOR_REPO_TAG%==true node-pre-gyp package
5152
- IF %APPVEYOR_REPO_TAG%==true node-pre-gyp publish
5253

lifecycleScripts/clean.js

Lines changed: 3 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -1,142 +1,5 @@
1-
var fse = require("fs-extra");
1+
var cleanForPublish = require("clean-for-publish");
22
var path = require("path");
3-
var npm = require("npm");
4-
var Promise = require("nodegit-promise");
53

6-
var rooted = path.join.bind(path, __dirname, "..");
7-
if (fse.existsSync(rooted(".didntcomefromthenpmregistry"))) {
8-
console.error("[nodegit] We only clean when downloaded from the npm " +
9-
"registry. Skipping clean.");
10-
return;
11-
}
12-
13-
npm.load({
14-
"production": true
15-
}, function() {
16-
17-
var filesToDelete = [
18-
"build/Makefile",
19-
"build/binding.Makefile",
20-
"build/config.gypi",
21-
"build/gyp-mac-tool",
22-
"build/nodegit.target.mk",
23-
"build/vendor",
24-
25-
"build/Release/.deps",
26-
"build/Release/git2.a",
27-
"build/Release/http_parser.a",
28-
"build/Release/linker.lock",
29-
"build/Release/obj.target",
30-
"build/Release/openssl.a",
31-
"build/Release/ssh2.a",
32-
"build/Release/zlib.a",
33-
34-
"build/Debug/.deps",
35-
"build/Debug/git2.a",
36-
"build/Debug/http_parser.a",
37-
"build/Debug/linker.lock",
38-
"build/Debug/obj.target",
39-
"build/Debug/openssl.a",
40-
"build/Debug/ssh2.a",
41-
"build/Debug/zlib.a",
42-
43-
"example",
44-
"generate",
45-
"include",
46-
"lifecycleScripts",
47-
"src",
48-
"test",
49-
"vendor",
50-
51-
".astylerc",
52-
".editorconfig",
53-
".gitingore",
54-
".gitmodules",
55-
".jshintrc",
56-
".npmignore",
57-
".travis.yml",
58-
"appveyor.yml",
59-
"binding.gyp",
60-
"TESTING.md"
61-
];
62-
63-
var modulesToPrune = [
64-
"for-node-webkit",
65-
"which-native-nodish",
66-
"fs-extra",
67-
"node-pre-gyp",
68-
"npm"
69-
];
70-
71-
console.info("[nodegit] Cleaning up after ourselves.");
72-
73-
Promise.all([
74-
cleanFiles(),
75-
pruneDevDependencies(),
76-
pruneOtherDependencies()
77-
]).then(
78-
function success() {
79-
console.info("[nodegit] Done cleaning, enjoy!");
80-
},
81-
function failure() {
82-
console.error("[nodegit] Couldn't finish cleaning.");
83-
}
84-
);
85-
86-
function cleanFiles() {
87-
console.info("[nodegit] Deleting unneeded files.");
88-
return new Promise(function(resolve, reject) {
89-
var failures = filesToDelete.some(function(deletable) {
90-
try {
91-
fse.removeSync(rooted(deletable));
92-
return false;
93-
}
94-
catch (e) {
95-
console.info("[nodegit] Error deleting files. Errored on " +
96-
rooted(deletable) + ".");
97-
console.error(e);
98-
99-
reject(e);
100-
return true;
101-
}
102-
});
103-
104-
if (!failures) {
105-
console.info("[nodegit] Finished deleting files.");
106-
resolve();
107-
}
108-
});
109-
}
110-
111-
function pruneDevDependencies() {
112-
console.info("[nodegit] Pruning devdependencies.");
113-
return new Promise(function (resolve, reject) {
114-
npm.commands.prune(function(err) {
115-
if (err) {
116-
console.error("[nodegit] Failed pruning devdependencies.");
117-
reject(err);
118-
}
119-
else {
120-
console.info("[nodegit] Successfully pruned devdependencies.");
121-
resolve();
122-
}
123-
});
124-
});
125-
}
126-
127-
function pruneOtherDependencies() {
128-
console.info("[nodegit] Cleaning unneeded dependencies.");
129-
return new Promise(function (resolve, reject) {
130-
npm.commands.uninstall(modulesToPrune, function(err) {
131-
if (err) {
132-
console.error("[nodegit] Failed cleaning unneeded dependencies.");
133-
reject(err);
134-
}
135-
else {
136-
console.info("[nodegit] Successfully cleaned unneeded dependencies.");
137-
resolve();
138-
}
139-
});
140-
});
141-
}
142-
});
4+
var location = path.join(__dirname, "..");
5+
cleanForPublish(location);

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
"which-native-nodish": "^1.1.3"
4646
},
4747
"devDependencies": {
48+
"clean-for-publish": "^1.0.2",
4849
"combyne": "^0.8.1",
4950
"coveralls": "^2.11.4",
5051
"istanbul": "^0.3.20",

0 commit comments

Comments
 (0)