@@ -23,6 +23,7 @@ import {
2323 createConfigFile ,
2424 createEnvFile ,
2525 createGitignore ,
26+ createReadmeSection ,
2627 createUfazienignore ,
2728 createPhpProjectStructure ,
2829 createStaticProjectStructure ,
@@ -339,12 +340,25 @@ program
339340 }
340341 }
341342
342- // Create project structure
343- process . stdout . write ( chalk . green ( '\nCreating project structure...' ) ) ;
344- if ( websiteType === 'php' ) {
345- const hasDb = database !== null && database . status === 'active' ;
346- createPhpProjectStructure ( projectDir , name , hasDb ) ;
343+ // Ask if user wants to create project structure
344+ const createStructureAnswer = await inquirer . prompt ( [
345+ {
346+ type : 'confirm' ,
347+ name : 'createStructure' ,
348+ message : 'Create project structure?' ,
349+ default : true ,
350+ } ,
351+ ] ) ;
352+ const createStructure = createStructureAnswer . createStructure ;
347353
354+ // Always create essential files (regardless of create_structure choice)
355+ process . stdout . write ( chalk . green ( '\nCreating essential files...' ) ) ;
356+ // Always create .gitignore and README.md (append if exists)
357+ createGitignore ( projectDir ) ;
358+ createReadmeSection ( projectDir , websiteType , name , buildFolder ) ;
359+
360+ if ( websiteType === 'php' ) {
361+ // For PHP: create .env (if database) and .ufazienignore
348362 if ( database ) {
349363 const username = database . username || '' ;
350364 const password = database . password || '' ;
@@ -356,49 +370,61 @@ program
356370 username,
357371 password,
358372 } ) ;
359- createConfigFile ( projectDir , {
360- name : database . name ,
361- host : database . host || 'mysql.ufazien.com' ,
362- port : database . port || 3306 ,
363- username,
364- password,
365- } ) ;
366373 console . log ( chalk . green ( '\n✓ Created .env file with database credentials' ) ) ;
367- console . log ( chalk . green ( '✓ Created config.php' ) ) ;
368374 } else {
369375 console . log ( chalk . yellow ( '\n⚠ Skipping .env file creation - database credentials not yet available' ) ) ;
370- console . log ( chalk . dim ( 'Please create .env manually with database credentials once provisioning completes.' ) ) ;
371- createConfigFile ( projectDir , {
372- name : database . name ,
373- host : database . host || 'mysql.ufazien.com' ,
374- port : database . port || 3306 ,
375- username : '' ,
376- password : '' ,
377- } ) ;
378376 }
379377 }
380- } else if ( websiteType === 'build' ) {
381- createBuildProjectStructure ( projectDir , name ) ;
382- } else {
383- createStaticProjectStructure ( projectDir , name ) ;
384- }
385-
386- createGitignore ( projectDir ) ;
387- // .ufazienignore not needed for build projects (we zip only the build folder)
388- if ( websiteType !== 'build' ) {
378+ createUfazienignore ( projectDir ) ;
379+ } else if ( websiteType === 'static' ) {
380+ // For Static: create .ufazienignore
389381 createUfazienignore ( projectDir ) ;
390382 }
383+ // For Build: no .ufazienignore needed
391384
392- if ( websiteType === 'build' ) {
393- console . log ( chalk . green ( '✓ Created project files:' ) ) ;
394- console . log ( ' • README.md (deployment instructions)' ) ;
395- console . log ( ' • .gitignore' ) ;
396- console . log ( ' • .ufazien.json' ) ;
397- console . log ( chalk . yellow ( `\nℹ Build Project Setup:` ) ) ;
398- console . log ( ` 1. Build your project (creates ${ buildFolder } folder)` ) ;
399- console . log ( ` 2. Run ${ chalk . cyan ( 'ufazienjs deploy' ) } to deploy the ${ buildFolder } folder` ) ;
400- } else {
385+ console . log ( chalk . green ( '✓ Created essential files' ) ) ;
386+
387+ // Create optional boilerplate files (only if user wants project structure)
388+ if ( createStructure ) {
389+ process . stdout . write ( chalk . green ( '\nCreating project structure...' ) ) ;
390+ if ( websiteType === 'php' ) {
391+ const hasDb = database !== null && database . status === 'active' ;
392+ createPhpProjectStructure ( projectDir , name , hasDb ) ;
393+
394+ if ( database ) {
395+ const username = database . username || '' ;
396+ const password = database . password || '' ;
397+ if ( username && password ) {
398+ createConfigFile ( projectDir , {
399+ name : database . name ,
400+ host : database . host || 'mysql.ufazien.com' ,
401+ port : database . port || 3306 ,
402+ username,
403+ password,
404+ } ) ;
405+ console . log ( chalk . green ( '✓ Created config.php' ) ) ;
406+ } else {
407+ createConfigFile ( projectDir , {
408+ name : database . name ,
409+ host : database . host || 'mysql.ufazien.com' ,
410+ port : database . port || 3306 ,
411+ username : '' ,
412+ password : '' ,
413+ } ) ;
414+ }
415+ }
416+ } else if ( websiteType === 'static' ) {
417+ createStaticProjectStructure ( projectDir , name ) ;
418+ }
419+ // Build projects don't need boilerplate files
420+
401421 console . log ( chalk . green ( '✓ Created project structure' ) ) ;
422+
423+ if ( websiteType === 'build' ) {
424+ console . log ( chalk . yellow ( `\nℹ Build Project Setup:` ) ) ;
425+ console . log ( ` 1. Build your project (creates ${ buildFolder } folder)` ) ;
426+ console . log ( ` 2. Run ${ chalk . cyan ( 'ufazienjs deploy' ) } to deploy the ${ buildFolder } folder` ) ;
427+ }
402428 }
403429
404430 // Save config
0 commit comments