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(); | ||
|  |     }); | ||
|  |   } | ||
|  | } |