1+ #!/usr/bin/env node
2+
3+ /**
4+ * Module dependencies.
5+ */
6+ var fs = require ( 'fs' ) ;
7+ var path = require ( 'path' ) ;
8+ var yargs = require ( 'yargs' )
9+ . usage ( 'Usage: $0 <command> [options]' )
10+ . command ( 'init' , '初始化数据库' )
11+ . example ( '$0 init --dbname codepush --dbhost localhost --dbuser root --dbpassword 123456' , '初始化code-push-server数据库' )
12+ . default ( { dbname : 'codepush' , dbhost : 'localhost' , dbuser : 'root' , dbpassword : null } )
13+ . help ( 'h' )
14+ . alias ( 'h' , 'help' ) ;
15+ var argv = yargs
16+ . argv ;
17+ var command = argv . _ [ 0 ] ;
18+ var mysql = require ( 'mysql' ) ;
19+ var Promise = require ( "bluebird" ) ;
20+ var dbname = argv . dbname ? argv . dbname : 'codepush' ;
21+ var dbhost = argv . dbhost ? argv . dbhost : 'localhost' ;
22+ var dbuser = argv . dbuser ? argv . dbuser : 'root' ;
23+ var dbpassword = argv . dbpassword ? argv . dbpassword : null ;
24+ if ( command === 'init' ) {
25+ var connection2 ;
26+ var connection = mysql . createConnection ( {
27+ host : dbhost ,
28+ user : dbuser ,
29+ password : dbpassword
30+ } ) ;
31+ Promise . promisifyAll ( connection ) ;
32+ connection . connect ( ) ;
33+ connection . queryAsync ( `CREATE DATABASE ${ dbname } ` )
34+ . then ( function ( ) {
35+ connection2 = mysql . createConnection ( {
36+ host : dbhost ,
37+ user : dbuser ,
38+ password : dbpassword ,
39+ database : dbname ,
40+ multipleStatements : true
41+ } ) ;
42+ connection2 . connect ( ) ;
43+ Promise . promisifyAll ( connection2 ) ;
44+ return connection2 ;
45+ } )
46+ . then ( function ( connection2 ) {
47+ var sql = fs . readFileSync ( path . resolve ( __dirname , '../sql/codepush.sql' ) , 'utf-8' ) ;
48+ var sql2 = fs . readFileSync ( path . resolve ( __dirname , '../sql/codepush-v0.1.1.sql' ) , 'utf-8' ) ;
49+ var sql3 = fs . readFileSync ( path . resolve ( __dirname , '../sql/codepush-v0.1.5.sql' ) , 'utf-8' ) ;
50+ return connection2 . queryAsync ( sql )
51+ . then ( function ( ) {
52+ return connection2 . queryAsync ( sql2 ) ;
53+ } )
54+ . then ( function ( ) {
55+ return connection2 . queryAsync ( sql3 ) ;
56+ } ) ;
57+ } )
58+ . then ( function ( ) {
59+ console . log ( 'success.' ) ;
60+ } )
61+ . catch ( function ( e ) {
62+ console . log ( e ) ;
63+ } )
64+ . finally ( function ( ) {
65+ if ( connection ) connection . end ( ) ;
66+ if ( connection2 ) connection2 . end ( )
67+ } ) ;
68+ } else {
69+ yargs . showHelp ( ) ;
70+ }
0 commit comments