UNPKG

2.9 kBJavaScriptView Raw
1var gulp = require( 'gulp' );
2var path = require( 'path' );
3var chalk = require( 'chalk');
4var request = require( 'superagent' );
5var gutil = require( 'gulp-util' );
6
7var PluginError = gutil.PluginError;
8
9var awspublish = require( 'gulp-awspublish' );
10var rename = require( 'gulp-rename' );
11var zip = require( 'gulp-zip' );
12var revall = require('gulp-rev-all');
13var Request = require('superagent');
14var open = require('open');
15var fs = require("fs");
16
17gulp.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
36gulp.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
43gulp.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 //if( !fs.existSync( localize( config.get( 'ZIP_PATH' ) ) ) ){
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
70gulp.task( 'CLAY_DIST', [ 'CLAY_UPLOAD' ], function(cb){
71 //request.get('http://localhost:3000/unzip')
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});