UNPKG

ember-cli-ajh

Version:

Command line tool for developing ambitious ember.js apps

94 lines (76 loc) 2.83 kB
'use strict'; var Command = require('../models/command'); var Promise = require('../ext/promise'); var Blueprint = require('../models/blueprint'); var merge = require('lodash/object/merge'); var SilentError = require('silent-error'); module.exports = Command.extend({ name: 'destroy', description: 'Destroys code generated by `generate` command.', aliases: ['d'], works: 'insideProject', availableOptions: [ { name: 'dry-run', type: Boolean, default: false, aliases: ['d'] }, { name: 'verbose', type: Boolean, default: false, aliases: ['v'] }, { name: 'pod', type: Boolean, default: false, aliases: ['p'] }, { name: 'classic', type: Boolean, default: false, aliases: ['c'] }, { name: 'dummy', type: Boolean, default: false, aliases: ['dum', 'id'] }, { name: 'in-repo-addon', type: String, default: null, aliases: ['in-repo', 'ir'] } ], anonymousOptions: [ '<blueprint>' ], beforeRun: function(rawArgs) { if (!rawArgs.length) { return; } try { // merge in blueprint availableOptions this.registerOptions(this.lookupBlueprint(rawArgs[0])); } catch(e) { SilentError.debugOrThrow('ember-cli/commands/destroy', e); } }, run: function(commandOptions, rawArgs) { var blueprintName = rawArgs[0]; var entityName = rawArgs[1]; if (!blueprintName) { return Promise.reject(new SilentError('The `ember destroy` command requires a ' + 'blueprint name to be specified. ' + 'For more details, use `ember help`.')); } if (!entityName) { return Promise.reject(new SilentError('The `ember destroy` command requires an ' + 'entity name to be specified. ' + 'For more details, use `ember help`.')); } var Task = this.tasks.DestroyFromBlueprint; var task = new Task({ ui: this.ui, analytics: this.analytics, project: this.project, settings: this.settings }); var taskArgs = { args: rawArgs }; if (this.settings && this.settings.usePods && !commandOptions.classic) { commandOptions.pod = !commandOptions.pod; } var taskOptions = merge(taskArgs, commandOptions || {}); if (this.project.initializeAddons) { this.project.initializeAddons(); } return task.run(taskOptions); }, lookupBlueprint: function(name) { return Blueprint.lookup(name, { paths: this.project.blueprintLookupPaths() }); }, printDetailedHelp: function() { var ui = this.ui; ui.writeLine(''); ui.writeLine(' Run `ember help generate` to view a list of available blueprints.'); } });