Skip to content

Instantly share code, notes, and snippets.

@vol4ikman
Last active May 6, 2023 10:46
Show Gist options
  • Save vol4ikman/92e381e5adee0b1e36606d82d5f45613 to your computer and use it in GitHub Desktop.
Save vol4ikman/92e381e5adee0b1e36606d82d5f45613 to your computer and use it in GitHub Desktop.
Install wordpress + theme with gulp.js
// npm install [email protected] gulp-decompress gulp-download vinyl-ftp del gulp-open gulp-run
/****************************
FTP Server connection
****************************/
var ftp_host = 'devurl.net',
ftp_user = 'user',
ftp_pass = 'pass',
//theme_name = 'gulp-starter',
theme_path = './wp-content/themes/';
/****************************
GULP Libraries
****************************/
var gulp = require('gulp'),
decompress = require('gulp-decompress'),
download = require('gulp-download'),
ftp = require('vinyl-ftp'),
del = require('del'),
open = require('gulp-open'),
run = require('gulp-run');
/****************************
GULP TASKS
****************************/
gulp.task('default', function(){
console.log("Hello gulp");
});
// Download Wordpress
gulp.task('download-wp', function () {
return download('https://wordpress.org/latest.tar.gz')
.pipe(gulp.dest("./downloads"));
});
// Download Starter Theme
gulp.task('download-theme', ['download-wp'], function(){
return download('https://github.com/vol4ikman/qs-starter-gulp/archive/master.zip')
.pipe(gulp.dest("./downloads"));
});
// Unzip Wordpress
gulp.task('unzip-wp', ['download-wp', 'download-theme'], function () {
return gulp.src('downloads/latest.tar.gz')
.pipe(decompress({strip: 1}))
.pipe(gulp.dest('./'));
});
// Delete default Wordpress themes
gulp.task('delete-default-themes',['unzip-wp'], function(){
return del(['wp-content/themes/**']);
});
// Delete Wordpress unused files
gulp.task('delete-wp-unused-files',['delete-default-themes'], function(){
return del(['license.txt', 'readme.html']);
});
// Unzip Starter theme to Wordpress
gulp.task('unzip-theme', ['delete-wp-unused-files'], function () {
return gulp.src('downloads/master.zip')
.pipe(decompress({strip: 1}))
.pipe(gulp.dest( theme_path ));
});
// Delete delete folder
gulp.task('delete',['unzip-theme'], function(){
return del(['downloads/**']);
});
// Upload wp-content
gulp.task( 'upload-all',['delete'], function () {
var conn = ftp.create( {
host : ftp_host,
user : ftp_user,
password : ftp_pass,
parallel : 8
} );
var globs = [
'**/*',
'*',
'!node_modules',
'!node_modules/**'
];
return gulp.src( globs, { base: '.', buffer: false } )
//.pipe( conn.newer( '/public_html' ) ) // only upload newer files
.pipe( conn.dest( '/public_html' ) );
} );
// Download + unzip + upload to remote FTP
gulp.task('install', ['upload-all'], function(){
console.log('WP installed and uploaded');
});
// Install gulp inside theme folder
gulp.task('install-gulp-in-theme',['install'], function(){
return run('npm install --prefix ' + theme_path + ' [email protected] gulp-bower gulp-uglify gulp-rename gulp-clean-css gulp-autoprefixer gulp-concat gulp-rtlcss gulp-notify').exec();
});
// Deply new website
gulp.task('deploy',['install-gulp-in-theme'], function(){
return gulp.src(__filename)
.pipe( open({uri: 'http://querysol.com/'}) ); // new site installation url
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment