Last active
May 6, 2023 10:46
-
-
Save vol4ikman/92e381e5adee0b1e36606d82d5f45613 to your computer and use it in GitHub Desktop.
Install wordpress + theme with gulp.js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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