@@ -27,19 +27,13 @@ module.exports = function ( grunt ) {
27
27
requirejs : false ,
28
28
forceExit : true
29
29
} ,
30
- curl : {
31
- long : {
32
- src : 'http://bower.herokuapp.com/packages' ,
33
- dest : 'git_repositories/all_bower_packages.json'
34
- }
35
- } ,
36
30
clean : {
37
- all : 'git_repositories'
31
+ all : 'git_repositories/all_bower_packages.json '
38
32
}
39
33
} ) ;
40
34
41
35
grunt . registerTask ( 'test' , [ 'jshint' , 'jasmine_node' ] ) ;
42
- grunt . registerTask ( 'sync' , [ 'clean' , 'curl ' , 'sync_db' ] ) ;
36
+ grunt . registerTask ( 'sync' , [ 'clean' , 'get_bower_packages ' , 'sync_db' ] ) ;
43
37
grunt . registerTask ( 'default' , [ 'test' , 'sync' ] ) ;
44
38
45
39
grunt . registerTask ( 'init_db' , 'Sync database to Bower official registry' , function ( ) {
@@ -51,6 +45,49 @@ module.exports = function ( grunt ) {
51
45
} ) ;
52
46
} ) ;
53
47
48
+ grunt . registerTask ( 'get_bower_packages' , 'Get official bower packages' , function ( ) {
49
+ var fs = require ( 'fs' ) ;
50
+ var request = require ( 'request' ) ;
51
+ var progress = require ( 'request-progress' ) ;
52
+ var util = require ( 'util' ) ;
53
+ var done = this . async ( ) ;
54
+ var url = 'http://bower.herokuapp.com/packages' ;
55
+
56
+ if ( ! fs . existsSync ( 'git_repositories' ) ) {
57
+ fs . mkdir ( 'git_repositories' ) ;
58
+ }
59
+
60
+ //request = request.defaults({'proxy':'http://<proxy-ip>:<proxy-port>'});
61
+
62
+ var total = '' ;
63
+ progress ( request ( url ) , {
64
+ throttle : 1000 ,
65
+ delay : 500
66
+ } )
67
+ . on ( 'progress' , function ( state ) {
68
+ util . print ( 'Receiving ' + state . received + ' of ' + state . total +
69
+ ' bytes. ' + state . percent + '% done.\r' ) ;
70
+ total = state . total ;
71
+ } )
72
+ . on ( 'error' , function ( err ) {
73
+ console . log ( 'Could not read ' + url + ' - ' + err ) ;
74
+ } )
75
+ . pipe ( fs . createWriteStream ( 'git_repositories/all_bower_packages.json' ) )
76
+ . on ( 'error' , function ( err ) {
77
+ console . log ( 'Could not save git_repositories/all_bower_packages.json - ' + err ) ;
78
+ } )
79
+ . on ( 'close' , function ( err ) {
80
+ if ( total !== '' ) {
81
+ util . print ( 'Receiving ' + total + ' of ' + total +
82
+ ' bytes. 100 % done.\r' ) ;
83
+ }
84
+ else {
85
+ util . print ( '100 % done.\r' ) ;
86
+ }
87
+ done ( ) ;
88
+ } ) ;
89
+ } ) ;
90
+
54
91
grunt . registerTask ( 'sync_db' , 'Sync database to Bower official registry' , function ( ) {
55
92
var done = this . async ( ) ;
56
93
var bowerDB = grunt . file . readJSON ( 'git_repositories/all_bower_packages.json' ) ;
0 commit comments