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.
- package/out/cli.js +56 -39
- 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 <=
|
|
593
|
+
while (step > 0 && step <= 5) {
|
|
577
594
|
if (step === 1) {
|
|
578
|
-
|
|
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
|
|
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 (
|
|
598
|
-
name = undefined;
|
|
616
|
+
if (langAns.language === BACK) {
|
|
599
617
|
step--;
|
|
600
618
|
}
|
|
601
619
|
else {
|
|
602
|
-
|
|
603
|
-
|
|
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 ===
|
|
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 >
|
|
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.
|
|
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
|
+
}
|