You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					32 lines
				
				1.1 KiB
			
		
		
			
		
	
	
					32 lines
				
				1.1 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = exports = clean;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								exports.usage = 'Removes the entire folder containing the compiled .node module';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const rm = require('rimraf');
							 | 
						||
| 
								 | 
							
								const exists = require('fs').exists || require('path').exists;
							 | 
						||
| 
								 | 
							
								const versioning = require('./util/versioning.js');
							 | 
						||
| 
								 | 
							
								const napi = require('./util/napi.js');
							 | 
						||
| 
								 | 
							
								const path = require('path');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function clean(gyp, argv, callback) {
							 | 
						||
| 
								 | 
							
								  const package_json = gyp.package_json;
							 | 
						||
| 
								 | 
							
								  const napi_build_version = napi.get_napi_build_version_from_command_args(argv);
							 | 
						||
| 
								 | 
							
								  const opts = versioning.evaluate(package_json, gyp.opts, napi_build_version);
							 | 
						||
| 
								 | 
							
								  const to_delete = opts.module_path;
							 | 
						||
| 
								 | 
							
								  if (!to_delete) {
							 | 
						||
| 
								 | 
							
								    return callback(new Error('module_path is empty, refusing to delete'));
							 | 
						||
| 
								 | 
							
								  } else if (path.normalize(to_delete) === path.normalize(process.cwd())) {
							 | 
						||
| 
								 | 
							
								    return callback(new Error('module_path is not set, refusing to delete'));
							 | 
						||
| 
								 | 
							
								  } else {
							 | 
						||
| 
								 | 
							
								    exists(to_delete, (found) => {
							 | 
						||
| 
								 | 
							
								      if (found) {
							 | 
						||
| 
								 | 
							
								        if (!gyp.opts.silent_clean) console.log('[' + package_json.name + '] Removing "%s"', to_delete);
							 | 
						||
| 
								 | 
							
								        return rm(to_delete, callback);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      return callback();
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 |