|
| 1 | +import {src, dest} from 'gulp'; |
| 2 | +import replace from 'gulp-replace'; |
| 3 | +import run from 'gulp-run'; |
| 4 | + |
| 5 | +import yargs from 'yargs'; |
| 6 | +import fs from 'fs'; |
| 7 | + |
| 8 | +require('dotenv').config(); |
| 9 | + |
| 10 | +// Setup the wp-config.php for local, stage or production |
| 11 | +const setup = (done) => { |
| 12 | + if (fs.existsSync('.env')) { |
| 13 | + var dbname = process.env.LOCAL_DB_NAME; |
| 14 | + var dbuser = process.env.LOCAL_DB_USER; |
| 15 | + var dbpass = process.env.LOCAL_DB_PASS; |
| 16 | + var dbhost = process.env.LOCAL_DB_HOST; |
| 17 | + var prefix = process.env.DB_PREFIX; |
| 18 | + var debug = process.env.LOCAL_WP_DEBUG; |
| 19 | + var savequ = process.env.LOCAL_SAVEQUERIES; |
| 20 | + var disfmo = process.env.LOCAL_DISALLOW_FILE_MODS; |
| 21 | + var almult = process.env.LOCAL_WP_ALLOW_MULTISITE; |
| 22 | + |
| 23 | + if (typeof yargs.argv.prod !== 'undefined') { |
| 24 | + dbname = process.env.PRODUCTION_DB_NAME; |
| 25 | + dbuser = process.env.PRODUCTION_DB_USER; |
| 26 | + dbpass = process.env.PRODUCTION_DB_PASS; |
| 27 | + dbhost = ''; |
| 28 | + prefix = process.env.DB_PREFIX; |
| 29 | + debug = process.env.PRODUCTION_WP_DEBUG; |
| 30 | + savequ = process.env.PRODUCTION_SAVEQUERIES; |
| 31 | + disfmo = process.env.PRODUCTION_DISALLOW_FILE_MODS; |
| 32 | + almult = process.env.PRODUCTION_WP_ALLOW_MULTISITE; |
| 33 | + } else if (typeof yargs.argv.stage !== 'undefined') { |
| 34 | + dbname = process.env.STAGING_DB_NAME; |
| 35 | + dbuser = process.env.STAGING_DB_USER; |
| 36 | + dbpass = process.env.STAGING_DB_PASS; |
| 37 | + dbhost = ''; |
| 38 | + prefix = process.env.DB_PREFIX; |
| 39 | + debug = process.env.STAGING_WP_DEBUG; |
| 40 | + savequ = process.env.STAGING_SAVEQUERIES; |
| 41 | + disfmo = process.env.STAGING_DISALLOW_FILE_MODS; |
| 42 | + almult = process.env.STAGING_WP_ALLOW_MULTISITE; |
| 43 | + } |
| 44 | + |
| 45 | + var cmd = new run.Command('sh ./shells/getKeys.sh').exec(); |
| 46 | + var keys = fs.readFileSync('keys.php', 'utf-8'); |
| 47 | + |
| 48 | + src('./config/wp-config.php') |
| 49 | + .pipe(replace('@@db_name', dbname)) |
| 50 | + .pipe(replace('@@db_user', dbuser)) |
| 51 | + .pipe(replace('@@db_pass', dbpass)) |
| 52 | + .pipe(replace('@@db_host', dbhost)) |
| 53 | + .pipe(replace('@@include', keys)) |
| 54 | + .pipe(replace('@@db_prefix', prefix)) |
| 55 | + .pipe(replace('@@wp_debug', debug)) |
| 56 | + .pipe(replace('@@save_queries', savequ)) |
| 57 | + .pipe(replace('@@disallow_file_mods', disfmo)) |
| 58 | + .pipe(replace('@@wp_allow_multisite', almult)) |
| 59 | + .pipe(dest('wwwroot')); |
| 60 | + } else { |
| 61 | + console.log('.env file does not exist.\nRun gulp setupFirst'); |
| 62 | + } |
| 63 | + |
| 64 | + done(); |
| 65 | +}; |
| 66 | + |
| 67 | +module.exports = setup; |
0 commit comments