|
@@ -0,0 +1,53 @@
|
|
|
+#!/usr/bin/env node
|
|
|
+var fs = require('fs');
|
|
|
+var path = require('path');
|
|
|
+var glob = require('glob');
|
|
|
+var childProcess = require('child_process');
|
|
|
+
|
|
|
+
|
|
|
+// Get all of the packages.
|
|
|
+var basePath = path.resolve('.');
|
|
|
+var lernaConfig = require(path.join(basePath, 'lerna.json'));
|
|
|
+var packageConfig = lernaConfig.packages;
|
|
|
+var skipSource = process.argv.indexOf('packages') === -1;
|
|
|
+var skipExamples = process.argv.indexOf('examples') === -1;
|
|
|
+
|
|
|
+
|
|
|
+// Handle the packages
|
|
|
+for (var i = 0; i < packageConfig.length; i++) {
|
|
|
+ if (skipSource && packageConfig[i] === 'packages/*') {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (skipExamples && packageConfig[i] === 'examples/*') {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ var files = glob.sync(path.join(basePath, packageConfig[i]));
|
|
|
+ for (var j = 0; j < files.length; j++) {
|
|
|
+ try {
|
|
|
+ handlePackage(files[j]);
|
|
|
+ } catch (e) {
|
|
|
+ console.error(e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * Handle an individual package on the path - update the dependency.
|
|
|
+ */
|
|
|
+function handlePackage(packagePath) {
|
|
|
+ // Read in the package.json.
|
|
|
+ var packagePath = path.join(packagePath, 'package.json');
|
|
|
+ var package = require(packagePath);
|
|
|
+ if (!package.scripts || !package.scripts.clean) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ var targets = package.scripts.clean.split('&&');
|
|
|
+ for (var i = 0; i < targets.length; i++) {
|
|
|
+ var target = targets[i].replace('rimraf', '').trim();
|
|
|
+ target = path.join(packagePath, target);
|
|
|
+ if (fs.existsSync(target)) {
|
|
|
+ fs.removeSync(target);
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|