1
+ import * as changeCase from "change-case" ;
2
+ import * as inquirer from "inquirer" ;
3
+ import * as fs from "fs" ;
4
+ import { PermissionManager } from "./scripts/PermissionManager" ;
1
5
import { GenerateManager } from "./scripts/GenerateManager" ;
6
+ import { MANIFAST_PATH } from "./scripts/constants/ManifestPath" ;
7
+ import { DependencyManager } from "./scripts/DependencyManager" ;
2
8
3
9
const chalk = require ( 'chalk' ) ,
4
10
figlet = require ( 'figlet' ) ,
5
11
commander = require ( 'commander' ) ;
6
12
7
- const generateManager : GenerateManager = new GenerateManager ( ) ;
8
-
9
13
commander . arguments ( '<name>' )
10
14
. version ( '0.0.1' )
11
15
. option ( '-g, --generate [name]' , 'component (e.g activity, fragment etc..)' )
12
16
. option ( '-p, --permission <permission>' , 'add uses-permission to manifest file(e.g INTERNET)' )
13
17
. option ( '-d, --dependency <dependency>' , 'add dependency to build.gradle and sync gradle' )
14
18
. action ( ( name : string ) => {
19
+ console . log ( name ) ;
15
20
presentInitialMessage ( ( ) => {
16
21
if ( commander . generate ) {
17
- generateManager . generateByScaffold ( ) ;
22
+ const generateManager : GenerateManager = new GenerateManager ( ) ;
23
+ console . log ( chalk . yellow ( `${ changeCase . pascalCase ( commander . generate ) } will generated by Android CLI` ) ) ;
24
+ generateManager . getApplicationPackage ( packageName => {
25
+ this . getPackages ( packageName , packageList => {
26
+ let questions = [ {
27
+ type : 'list' ,
28
+ name : 'package' ,
29
+ message : "Choose your target package path" ,
30
+ choices : packageList ,
31
+ } ] ;
32
+ inquirer . prompt ( questions ) . then ( answers => {
33
+ generateManager . generateRenderedOutFile ( commander . generate , name , answers . package ) ;
34
+ } ) ;
35
+ } )
36
+ } )
37
+ } else if ( commander . permission ) {
38
+ const permissionManager : PermissionManager = new PermissionManager ( ) ;
39
+ permissionManager . addPermissionToManifest ( commander . permission , xml => {
40
+ try {
41
+ fs . writeFileSync ( MANIFAST_PATH , xml ) ;
42
+ console . log ( chalk . green ( `Successful adding permission` ) ) ;
43
+ } catch ( err ) {
44
+ console . log ( chalk . red ( `Failed to adding permission` ) ) ;
45
+ console . log ( chalk . red ( err ) )
46
+ }
47
+ } ) ;
48
+ } else if ( commander . dependency ) {
49
+ const dependencyManager : DependencyManager = new DependencyManager ( ) ;
50
+ dependencyManager . addDependency ( commander . dependency , ( ) => {
51
+ console . log ( chalk . green ( `Successful adding dependency` ) ) ;
52
+ } ) ;
18
53
}
19
54
} ) ;
20
55
} ) . parse ( process . argv ) ;
@@ -25,7 +60,11 @@ commander.arguments('<name>')
25
60
*/
26
61
function presentInitialMessage ( callback ) {
27
62
figlet ( 'Android CLI' , ( err , data ) => {
28
- console . log ( chalk . cyan ( data ) ) ;
29
- callback ( ) ;
63
+ if ( ! err ) {
64
+ console . log ( chalk . cyan ( data ) ) ;
65
+ callback ( ) ;
66
+ } else {
67
+ console . log ( err ) ;
68
+ }
30
69
} )
31
70
}
0 commit comments