zerostart-cli 0.0.38 → 0.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/out/cli.js +56 -39
  2. package/package.json +2 -2
package/out/cli.js CHANGED
@@ -143,6 +143,17 @@ async function initializeProject(name, language, type, options) {
143
143
  console.log(chalk_1.default.gray(' - ') + chalk_1.default.cyan(link));
144
144
  console.log(chalk_1.default.gray(' (Opening in your browser...)'));
145
145
  openUrl(link);
146
+ // Open a new terminal window with the language interpreter running
147
+ const terminalCmds = {
148
+ [types_1.ProjectLanguage.Python]: 'start cmd /k "python"',
149
+ [types_1.ProjectLanguage.Java]: `start cmd /k "cd /d ${projectPath} && javac src/main/java/com/example/Main.java && java -cp src/main/java com.example.Main"`,
150
+ [types_1.ProjectLanguage.CPP]: `start cmd /k "cd /d ${projectPath} && g++ main.cpp -o main && main"`,
151
+ };
152
+ const termCmd = terminalCmds[language];
153
+ if (termCmd) {
154
+ console.log(chalk_1.default.bold.yellow(' Opening interactive terminal...'));
155
+ (0, child_process_1.exec)(termCmd, { cwd: projectPath });
156
+ }
146
157
  }
147
158
  if (language === types_1.ProjectLanguage.HTMLCSS) {
148
159
  console.log(chalk_1.default.bold.cyan('\n Deployment:'));
@@ -564,6 +575,12 @@ shortcuts.forEach(s => {
564
575
  });
565
576
  });
566
577
  async function startWizard(initialName) {
578
+ // Steps:
579
+ // 1 = Category (Web Dev / CP) — shown FIRST
580
+ // 2 = Language sub-selection
581
+ // 3 = Project Name
582
+ // 4 = GitHub? (only for React/TS)
583
+ // 5 = GitHub Token (only if GitHub = Yes)
567
584
  let step = 1;
568
585
  let name = initialName;
569
586
  let category;
@@ -573,63 +590,62 @@ async function startWizard(initialName) {
573
590
  const BACK = '< Back';
574
591
  const CAT_WEB = '🌐 Web Development (React, TS, HTML/CSS)';
575
592
  const CAT_CP = '🏆 Competitive Programming (C++, Java, Python)';
576
- while (step > 0 && step <= 4) {
593
+ while (step > 0 && step <= 5) {
577
594
  if (step === 1) {
578
- if (!name) {
579
- const ans = await inquirer_1.default.prompt([{
580
- type: 'input',
581
- name: 'name',
582
- message: 'Project Name:',
583
- default: 'my-project'
584
- }]);
585
- name = ans.name;
586
- }
587
- step++;
588
- }
589
- else if (step === 2) {
590
- // Category Selection
595
+ // Step 1: Category Selection — shown FIRST
591
596
  const ans = await inquirer_1.default.prompt([{
592
597
  type: 'list',
593
598
  name: 'category',
594
599
  message: 'What are you building?',
595
- choices: [CAT_WEB, CAT_CP, new inquirer_1.default.Separator(), BACK]
600
+ choices: [CAT_WEB, CAT_CP]
601
+ }]);
602
+ category = ans.category;
603
+ step++;
604
+ }
605
+ else if (step === 2) {
606
+ // Step 2: Language sub-selection
607
+ const langChoices = category === CAT_WEB
608
+ ? [types_1.ProjectLanguage.React, types_1.ProjectLanguage.TypeScript, types_1.ProjectLanguage.HTMLCSS, new inquirer_1.default.Separator(), BACK]
609
+ : [types_1.ProjectLanguage.CPP, types_1.ProjectLanguage.Java, types_1.ProjectLanguage.Python, new inquirer_1.default.Separator(), BACK];
610
+ const langAns = await inquirer_1.default.prompt([{
611
+ type: 'list',
612
+ name: 'language',
613
+ message: 'Select Language:',
614
+ choices: langChoices
596
615
  }]);
597
- if (ans.category === BACK) {
598
- name = undefined;
616
+ if (langAns.language === BACK) {
599
617
  step--;
600
618
  }
601
619
  else {
602
- category = ans.category;
603
- // Sub-selection for languages
604
- const langChoices = category === CAT_WEB
605
- ? [types_1.ProjectLanguage.React, types_1.ProjectLanguage.TypeScript, types_1.ProjectLanguage.HTMLCSS, BACK]
606
- : [types_1.ProjectLanguage.CPP, types_1.ProjectLanguage.Java, types_1.ProjectLanguage.Python, BACK];
607
- const langAns = await inquirer_1.default.prompt([{
608
- type: 'list',
609
- name: 'language',
610
- message: 'Select Language:',
611
- choices: langChoices
612
- }]);
613
- if (langAns.language === BACK) {
614
- // Stay on step 2, loop back to category selection
615
- continue;
616
- }
617
- else {
618
- language = langAns.language;
619
- step++;
620
- }
620
+ language = langAns.language;
621
+ step++;
621
622
  }
622
623
  }
623
624
  else if (step === 3) {
625
+ // Step 3: Project Name
626
+ if (!name) {
627
+ const ans = await inquirer_1.default.prompt([{
628
+ type: 'input',
629
+ name: 'name',
630
+ message: 'Project Name:',
631
+ default: 'my-project'
632
+ }]);
633
+ name = ans.name;
634
+ }
635
+ step++;
636
+ }
637
+ else if (step === 4) {
638
+ // Step 4: GitHub? (only for React/TS)
624
639
  if (language === types_1.ProjectLanguage.React || language === types_1.ProjectLanguage.TypeScript) {
625
640
  const ans = await inquirer_1.default.prompt([{
626
641
  type: 'list',
627
642
  name: 'github',
628
643
  message: 'Do you want to add this to GitHub?',
629
- choices: ['Yes', 'No', BACK],
644
+ choices: ['Yes', 'No', new inquirer_1.default.Separator(), BACK],
630
645
  default: 'Yes'
631
646
  }]);
632
647
  if (ans.github === BACK) {
648
+ name = undefined; // reset name so it's re-asked if they go back
633
649
  step--;
634
650
  }
635
651
  else {
@@ -642,7 +658,8 @@ async function startWizard(initialName) {
642
658
  step++;
643
659
  }
644
660
  }
645
- else if (step === 4) {
661
+ else if (step === 5) {
662
+ // Step 5: GitHub Token (only if GitHub = Yes)
646
663
  if (github) {
647
664
  showGitHubTokenHelp();
648
665
  const ans = await inquirer_1.default.prompt([
@@ -666,7 +683,7 @@ async function startWizard(initialName) {
666
683
  }
667
684
  }
668
685
  }
669
- if (step > 4 && name && language) {
686
+ if (step > 5 && name && language) {
670
687
  let type = types_1.ProjectType.WebApp;
671
688
  if (language === types_1.ProjectLanguage.TypeScript)
672
689
  type = types_1.ProjectType.CLITool;
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "zerostart": "./out/cli.js"
6
6
  },
7
7
  "description": "Create and deploy a complete project with one command.",
8
- "version": "0.0.38",
8
+ "version": "0.0.39",
9
9
  "engines": {
10
10
  "vscode": "^1.85.0"
11
11
  },
@@ -45,4 +45,4 @@
45
45
  "inquirer": "^9.3.8",
46
46
  "ora": "^5.4.1"
47
47
  }
48
- }
48
+ }