* Retrieve from module package.json the name of each application * delete process and delete folder
(PM2, module_name, cb)
| 204 | * delete process and delete folder |
| 205 | */ |
| 206 | function uninstall(PM2, module_name, cb) { |
| 207 | var module_path = path.join(cst.DEFAULT_MODULE_PATH, module_name); |
| 208 | |
| 209 | Common.logMod(`Removing ${module_name} from auto startup`) |
| 210 | |
| 211 | try { |
| 212 | var pkg = require(path.join(module_path, 'package.json')) |
| 213 | } catch(e) { |
| 214 | Common.errMod('Could not retrieve module package.json'); |
| 215 | return cb(e) |
| 216 | } |
| 217 | |
| 218 | var apps = pkg.apps || pkg.pm2 |
| 219 | apps = [].concat(apps); |
| 220 | |
| 221 | /** |
| 222 | * Some time a module can have multiple processes |
| 223 | */ |
| 224 | forEachLimit(apps, 1, (app, next) => { |
| 225 | var app_name |
| 226 | |
| 227 | if (!app.name) { |
| 228 | Common.renderApplicationName(app) |
| 229 | } |
| 230 | |
| 231 | if (apps.length > 1) |
| 232 | app_name = `${module_name}:${app.name}` |
| 233 | else if (apps.length == 1 && pkg.name != apps[0].name) |
| 234 | app_name = `${module_name}:${app.name}` |
| 235 | else |
| 236 | app_name = app.name |
| 237 | |
| 238 | PM2._operate('deleteProcessId', app_name, () => { |
| 239 | deleteModulePath(module_name) |
| 240 | next() |
| 241 | }) |
| 242 | }, () => { |
| 243 | Configuration.unsetSync(`${cst.MODULE_CONF_PREFIX_TAR}:${module_name}`) |
| 244 | cb(null) |
| 245 | }) |
| 246 | } |
| 247 | |
| 248 | |
| 249 | /** |
nothing calls this directly
no test coverage detected
searching dependent graphs…