UNPKG

basecamp-guide

Version:
93 lines (78 loc) 3.75 kB
// Dependecies var p = require('path'); var fs = require('fs'); var Colors = require('colors'); var Exec = require('child_process').execSync; var FileSys = require('../FileSystem.js'); var LaravelAppConfig = require('../LaravelAppConfig.js'); var Feedback = require('../Feedback.js'); /** * Config & Settings for the basecamp-design package. * * Installs composer package. * * */ var ModulesAuthInstallCommand = { fire : function(options) { var exportPaths = { root : this.config.exportPaths.root, stylus : p.join(this.config.exportPaths.root, this.config.exportPaths.stylus), vue : p.join(this.config.exportPaths.root, this.config.exportPaths.vue) }; // add laravel service providers console.log('Add ServiceProviders...'.bold); LaravelAppConfig.addProvider('AuthServiceProvider'); console.log(''); // update laravel auto-loader console.log('Update composer autoload...'.bold); var output = Exec('composer dump-autoload').toString(); console.log(output.grey); console.log('Delete Laravel default migration files...'.bold); FileSys.deleteFile('database/migrations/2014_10_12_000000_create_users_table.php'); FileSys.deleteFile('database/migrations/2014_10_12_100000_create_password_resets_table.php'); console.log(''); // delete laravel auth template files console.log('Delete Laravel default auth-controllers & -factories...'.bold); FileSys.deleteFile('app/Http/Controllers/Auth/AuthController.php'); FileSys.deleteFile('app/Http/Controllers/Auth/PasswordController.php'); FileSys.deleteFile('database/factories/ModelFactory.php'); FileSys.deleteDir('app/Http/Controllers/Auth'); console.log(''); // publish assets var forceFlag = ''; options.forEach(function(option) { if (option.name == 'force') forceFlag = '--force'; }); console.log('Publish AuthServiceProvider required files...'.bold); output = Exec('php artisan vendor:publish --provider="Basecamp\\Providers\\AuthServiceProvider" --tag="require" ' + forceFlag).toString(); console.log(output.grey); // set the correct email-view template for password-resets mails console.log('Update email-view in configs...'.bold); FileSys.modifyFile('config/auth.php', function(content) { content.replace("'auth.emails.password'", "'basecamp::emails.password'"); return content; }); console.log(''); // import style files in app.styl console.log('Add Styles to main stylus-file...'.bold); LaravelAppConfig.addStyleDependecy('auth-module/auth', p.join(exportPaths.stylus, 'app.styl')); console.log(''); // import Vue-Views to app.js console.log('Add JS-Views (vue) to main JS-file...'.bold); LaravelAppConfig.addVueViewDependecy('./auth-module/views/RequestNewPasswordView.js', p.join(exportPaths.vue, 'app.js')); LaravelAppConfig.addVueViewDependecy('./auth-module/views/ResetPasswordView.js', p.join(exportPaths.vue, 'app.js')); LaravelAppConfig.addVueViewDependecy('./auth-module/views/LoginView.js', p.join(exportPaths.vue, 'app.js')); console.log(''); // update laravel auto-loader console.log('Update composer autoload...'.bold); output = Exec('composer dump-autoload').toString(); console.log(output); }, /* * config-property will be injected from the * CommandLineTool while adding the command */ config : {}, }; module.exports = ModulesAuthInstallCommand;