1 | var gulp = require( 'gulp' );
|
2 | var path = require( 'path' );
|
3 | var chalk = require( 'chalk');
|
4 | var request = require( 'superagent' );
|
5 | var gutil = require( 'gulp-util' );
|
6 |
|
7 | var PluginError = gutil.PluginError;
|
8 |
|
9 | var awspublish = require( 'gulp-awspublish' );
|
10 | var rename = require( 'gulp-rename' );
|
11 | var zip = require( 'gulp-zip' );
|
12 | var revall = require('gulp-rev-all');
|
13 | var Request = require('superagent');
|
14 | var open = require('open');
|
15 | var fs = require("fs");
|
16 |
|
17 | gulp.task('CLAY_GET_KEY', function(cb) {
|
18 |
|
19 | Request.get( 'https://unzipper.herokuapp.com/login' )
|
20 | .set( 'Accept', 'application/json' )
|
21 | .type( 'application/json' )
|
22 | .query( 'dev_code='+ process.env.CLAY_CODE )
|
23 | .end( function( res ){
|
24 | if( res.status > 200 ) return cb( res.text );
|
25 |
|
26 | gutil.log( gutil.colors.cyan("Clay Credentials OK.") );
|
27 |
|
28 | process.env.AWS_ACCESS_KEY = res.body.Aws_Keys.Credentials.AccessKeyId
|
29 | process.env.AWS_ACCESS_TOKEN = res.body.Aws_Keys.Credentials.SecretAccessKey
|
30 | process.env.AWS_BUCKET = '3votzips'
|
31 | process.env.CLAY_USER = res.body
|
32 | cb();
|
33 | });
|
34 | });
|
35 |
|
36 | gulp.task( 'CLAY_ZIP', [ 'CLAY_GET_KEY' ] , function () {
|
37 | return gulp.src( [ process.env.DIST_FOLDER + '/**' ], { base: process.env.DIST_FOLDER , cwd: process.cwd() })
|
38 | .pipe(zip( process.env.ZIP_NAME + '.zip' ))
|
39 | .pipe( gulp.dest( process.env.ZIP_FOLDER ));
|
40 | });
|
41 |
|
42 |
|
43 | gulp.task('CLAY_UPLOAD', [ 'CLAY_ZIP', 'CLAY_GET_KEY' ], function() {
|
44 | var headers = { 'Cache-Control': 'max-age=1, no-transform, public' };
|
45 |
|
46 | gutil.log( gutil.colors.cyan("Uploading App") );
|
47 |
|
48 | var publisher = awspublish.create({
|
49 | key: process.env.AWS_ACCESS_KEY,
|
50 | secret: process.env.AWS_ACCESS_TOKEN,
|
51 | bucket: process.env.AWS_BUCKET
|
52 | });
|
53 |
|
54 |
|
55 |
|
56 | gutil.log( gutil.colors.red( "Dist Folder not found at " + process.env.ZIP_PATH ) );
|
57 |
|
58 |
|
59 | return gulp.src( process.env.ZIP_PATH )
|
60 | .pipe(rename(function ( path ) {
|
61 | path.dirname = '/' + process.env.ZIP_NAME
|
62 | path.basename = process.env.ZIP_NAME
|
63 | }))
|
64 |
|
65 | .pipe(publisher.publish(headers))
|
66 | .pipe(awspublish.reporter());
|
67 | });
|
68 |
|
69 |
|
70 | gulp.task( 'CLAY_DIST', [ 'CLAY_UPLOAD' ], function(cb){
|
71 |
|
72 | gutil.log( gutil.colors.cyan("Upload Complete") );
|
73 |
|
74 | request.get('http://unzipper.herokuapp.com/unzip')
|
75 | .query({ bucket: process.env.AWS_BUCKET })
|
76 | .query({ key: process.env.ZIP_NAME + '/' + process.env.ZIP_NAME +'.zip' })
|
77 | .end( function( res ){
|
78 | if(res.status > 200){
|
79 | console.dir( res.error )
|
80 | console.error( res.status )
|
81 | console.dir( res.body || res.test )
|
82 | throw res.body || res.text || res.error || res.status
|
83 | }
|
84 | gutil.log( gutil.colors.green( 'Publication Complete' ) );
|
85 |
|
86 | open( "http://" + process.env.ZIP_NAME + ".3votapp.com" );
|
87 | return cb();
|
88 | })
|
89 | });
|