@@ -14,8 +14,94 @@ let res: any = [];
1414let resources : any = [ ] ;
1515let stack_resource_Name : any = [ ] ;
1616let AppType ;
17- let template = { } ;
17+ let template : AnyObject = { } ;
1818let config ;
19+ let testdata = {
20+ "app_name" : "teststruct" ,
21+ "language" : "node" ,
22+ "Stacks" : {
23+ "BaseModuleRlbao" : "BaseModule" ,
24+ "BaseModuleKogle" : "BaseModule" ,
25+ "EmailAuthModulePsaih" : "EmailAuthModule" ,
26+ "EmailAuthModuleWjzvl" : "EmailAuthModule" ,
27+ "RDSModuleLzxxx" : "RDSModule" ,
28+ "RDSModuleCnxwn" : "RDSModule" ,
29+ "CRUDModuleVuayw" : "CRUDModule" ,
30+ "CRUDModuleWwaex" : "CRUDModule"
31+ } ,
32+ "StackParams" : {
33+ "BaseModuleRlbao" : { } ,
34+ "BaseModuleKogle" : { } ,
35+ "EmailAuthModulePsaih" : { } ,
36+ "EmailAuthModuleWjzvl" : { } ,
37+ "RDSModuleLzxxx" : { } ,
38+ "RDSModuleCnxwn" : { } ,
39+ "CRUDModuleVuayw" : {
40+ "Book" : {
41+ "path" : "/book" ,
42+ "methods" : [
43+ "put" ,
44+ "get" ,
45+ "post" ,
46+ "delete" ,
47+ "options"
48+ ] ,
49+ "resourcetype" : "lambda"
50+ } ,
51+ "Author" : {
52+ "path" : "/author" ,
53+ "methods" : [
54+ "put" ,
55+ "get" ,
56+ "post" ,
57+ "delete" ,
58+ "options"
59+ ] ,
60+ "resourcetype" : "lambda"
61+ }
62+ } ,
63+ "CRUDModuleWwaex" : {
64+ "Book" : {
65+ "path" : "/Book" ,
66+ "methods" : [
67+ "put" ,
68+ "get" ,
69+ "post" ,
70+ "delete" ,
71+ "options"
72+ ] ,
73+ "resourcetype" : "lambda"
74+ } ,
75+ "Author" : {
76+ "path" : "/author" ,
77+ "methods" : [
78+ "put" ,
79+ "get" ,
80+ "post" ,
81+ "delete" ,
82+ "options"
83+ ] ,
84+ "resourcetype" : "lambda"
85+ }
86+ }
87+ } ,
88+ "CustomStacks" : {
89+ "custom" : [
90+ "S3 Lambda" ,
91+ "CRUD API" ,
92+ "S3 Bucket" ,
93+ "Lambda" ,
94+ "DynamoDB"
95+ ] ,
96+ "custo" : [
97+ "S3 Lambda" ,
98+ "CRUD API" ,
99+ "S3 Bucket" ,
100+ "Lambda" ,
101+ "DynamoDB"
102+ ]
103+ }
104+ }
19105async function roverADD ( ) {
20106 let app_name = await util . inputString ( "app_name" , "" , false , "App Name" ) ;
21107 await rover_utilities . samValidate ( app_name [ "app_name" ] ) ;
@@ -25,7 +111,7 @@ async function roverADD() {
25111 let CompStacks = await rover_utilities . checkNested ( file_name ) ;
26112 return { "appname" : app_name , "language" : language , "filename" : file_name , "compstack" :CompStacks }
27113}
28- async function CRUDObject ( stackName , AppType ) {
114+ async function CRUDObject ( stackName : string , AppType : string ) {
29115 let crud : AnyObject = { } ;
30116 let StackParams : AnyObject = { } ;
31117 let paramModule : AnyObject = { } ;
@@ -46,37 +132,37 @@ async function CRUDObject(stackName,AppType) {
46132
47133 return StackParams
48134}
49- async function CustomObject ( i ) {
135+ async function CustomObject ( i : number ) {
50136 let customStacks : any = { } ;
51137 let choice = cliConfig . customizable . components ;
52138 let customstack_name = await util . inputString ( `customStackName${ i } ` , "" , false , `Stack ${ i } Name: ` ) ;
53139 let CustomStacks = await util . multichoice ( "app_type" , choice ) ;
54140 customStacks [ customstack_name [ `customStackName${ i } ` ] ] = CustomStacks . app_type ;
55141 return customStacks
56142}
57- async function createModules ( app_name , language ) {
143+ async function createModules ( app_name : AnyObject , language : string ) {
58144 let stack_names : any = { } ;
59145 let customStacks : any = { } ;
60146 let paramModule : AnyObject = { } ;
61147 let basecrud : AnyObject = { } ;
62148 let StackParams : any = { } ;
63149 let moreStack : any ;
64- let stackname : object = { } ;
150+ let stackname : AnyObject = { } ;
65151 let i = 1 ;
66152 let obj : AnyObject = { } ;
67153 do {
68154 let app_Types : any = [ ] ;
69155 let AppType : string = await util . appType ( "Module Type :" ) ;
70- if ( AppType !== "Customizable " ) {
71- stackname [ `stackName${ i } ` ] = "rover" + rover_utilities . makeid ( 5 ) ;
156+ if ( AppType !== "CustomizableModule " ) {
157+ stackname [ `stackName${ i } ` ] = AppType + rover_utilities . makeid ( 5 ) ;
72158 let stack_name = stackname ;
73159 let stackName : string = stack_name [ `stackName${ i } ` ] ;
74- if ( AppType === "CRUD " ) {
160+ if ( AppType === "CRUDModule " ) {
75161 StackParams = { ...StackParams , ... await CRUDObject ( stackName , AppType ) } ;
76162 } else {
77163
78164 obj [ stackName ] = basecrud ;
79- StackParams = { ...obj } ;
165+ StackParams = { ...obj , ... StackParams } ;
80166 }
81167 stack_names [ stack_name [ `stackName${ i } ` ] ] = AppType ;
82168 } else {
@@ -96,7 +182,13 @@ async function createModules(app_name,language) {
96182 return template
97183
98184}
185+ async function listProfiles ( ) {
186+ let profiles = ( exec ( "aws configure list-profiles" ) . toString ( ) ) . split ( "\n" )
187+ if ( profiles [ profiles . length - 1 ] == "" ) profiles . splice ( profiles . length - 1 , 1 )
188+ return profiles
189+ }
99190async function run ( argv : AnyObject ) {
191+ //rover_utilities.generateSAM(testdata);
100192 try {
101193 if ( rover_utilities . npmrootTest ( ) ) {
102194 const commandError = `rover ${ argv . join (
@@ -106,7 +198,7 @@ async function run(argv: AnyObject) {
106198 if ( argv . length === 1 && argv [ 0 ] === "init" ) {
107199 let editedSam = await util . confirmation ( ) ;
108200 if ( editedSam === "create new SAM project" ) {
109- let app_name : object = await util . inputString (
201+ let app_name : AnyObject = await util . inputString (
110202 "app_name" ,
111203 "" ,
112204 false ,
@@ -115,8 +207,9 @@ async function run(argv: AnyObject) {
115207 await rover_utilities . checkFile ( app_name [ "app_name" ] , "no" ) ;
116208 let language = await util . languageChoice ( ) ;
117209
118- template = await createModules ( app_name , language )
119- await rover_utilities . generateSAM ( { template } [ "template" ] ) ;
210+ template = await createModules ( app_name , language )
211+ console . log ( JSON . stringify ( template ) )
212+ //await rover_utilities.generateSAM({ template }["template"]);
120213
121214 } else if ( editedSam === "add components to existing SAM" ) {
122215
@@ -184,20 +277,23 @@ async function run(argv: AnyObject) {
184277 if ( r === "repository and pipeline" ) {
185278 console . log ( "Work in progress..." ) ;
186279 } else if ( r === "generate pipeline" ) {
187- await rover_utilities . samValidate ( undefined ) ;
280+ await rover_utilities . samValidate ( "" ) ;
188281 let lang : string = await rover_utilities . langValue ( ) ;
189282 let pipeline = await util . samBuild ( lang ) ;
190283 let repoConfig = { ...pipeline } ;
191284 template = { ...template , repoConfig } ;
192285 let repoconfig = await Promise . resolve ( util . jsonCreation ( template ) ) ;
193286 if ( repoconfig !== undefined ) {
287+
194288 await deployment . setupRepo ( JSON . parse ( repoconfig ) [ "repoConfig" ] ) ;
289+ rover_utilities . generateRoverConfig ( "" , JSON . parse ( repoconfig ) [ "repoConfig" ] , "rover_generate_pipeline" )
195290 }
196291 } else {
197- await rover_utilities . samValidate ( undefined ) ;
292+ await rover_utilities . samValidate ( "" ) ;
198293 if ( fs . existsSync ( "samconfig.toml" ) ) {
199294 exec ( "rm -rf samconfig.toml" ) ;
200295 }
296+ let profiles = await listProfiles ( )
201297 let filenamearray = exec ( "pwd" ) . toString ( ) . split ( "/" ) ;
202298 let file_name = filenamearray [ filenamearray . length - 1 ] . replace (
203299 "\n" ,
@@ -216,6 +312,8 @@ async function run(argv: AnyObject) {
216312 "Bucket Name(optional) :"
217313 ) ;
218314 let choice = buildConfig . samConfig . choices . deploymentregion ;
315+ let profile = ( await util . inputType ( "AWS profile" , profiles ) ) [ "AWS profile" ]
316+ console . log ( profile )
219317 let deploymentregion = await util . inputType (
220318 "Deployment region" ,
221319 choice
@@ -232,18 +330,14 @@ async function run(argv: AnyObject) {
232330 }
233331 let region = deploymentregion [ "Deployment region" ] ;
234332
235- exec (
236- "sh " +
237- rover_config . npmroot +
238- "/@rover-tools/cli/cli-main/exec.sh " +
239- file_name +
240- " " +
241- stack_name +
242- " " +
243- region +
244- " " +
245- bucketName
246- ) ;
333+ exec ( "sh " + rover_config . npmroot + "/@rover-tools/cli/cli-main/exec.sh " + file_name + " " + stack_name + " " + region + " " + bucketName + " " + profile ) ;
334+
335+ let configdata :AnyObject = { }
336+ configdata [ "bucket" ] = bucketName
337+ configdata [ "stack name" ] = stack_name
338+ configdata [ "region" ] = region
339+ configdata [ "profile" ] = profile
340+ rover_utilities . generateRoverConfig ( "" , configdata , "rover_deploy_cli" )
247341 }
248342 } else if ( argv [ 0 ] === "-v" || argv [ 0 ] === "--version" ) {
249343 // show current package version in the console
@@ -260,7 +354,7 @@ async function run(argv: AnyObject) {
260354 ) ;
261355 }
262356 } catch ( error ) {
263- console . log ( "Error: " , error . message ) ;
357+ console . log ( "Error: " , error ) ;
264358 }
265359}
266360export let stackNames : any = stack_resource_Name ;
0 commit comments