zerostart-cli 0.0.6 → 0.0.8
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/README.md +237 -237
- package/VERIFICATION_GUIDE.md +103 -0
- package/out/cli.js +87 -29
- package/out/cli.js.map +1 -1
- package/out/managers/GitManager.js +39 -0
- package/out/managers/GitManager.js.map +1 -1
- package/out/managers/TemplateManager.js +136 -136
- package/package.json +54 -54
package/README.md
CHANGED
|
@@ -1,237 +1,237 @@
|
|
|
1
|
-
# ZeroStart CLI 🚀
|
|
2
|
-
|
|
3
|
-
Create and deploy a complete project with **one command**.
|
|
4
|
-
|
|
5
|
-
[](https://www.npmjs.com/package/zerostart-cli)
|
|
6
|
-
[](https://www.npmjs.com/package/zerostart-cli)
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## 📦 Installation
|
|
11
|
-
|
|
12
|
-
**⚠️ IMPORTANT: Use the `-g` flag to install globally!**
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
npm install -g zerostart-cli
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
> **Why `-g`?** The `-g` flag installs ZeroStart globally on your system, making the `zerostart` command available from anywhere in your terminal. Without it, you'll only get `node_modules` and `package-lock.json` files, and the CLI won't work!
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## 🚀 Quick Start
|
|
23
|
-
|
|
24
|
-
After installing globally, create a new project:
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
zerostart my-awesome-project
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
Or simply run:
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
zerostart
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
Then follow the interactive prompts!
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## ✨ Features
|
|
41
|
-
|
|
42
|
-
- 🎯 **Interactive CLI** - Guided prompts for project setup
|
|
43
|
-
- 🌐 **Multiple Languages** - Node.js, React, Python, Java, C++
|
|
44
|
-
- 📦 **Project Types** - Web App, CLI Tool, DSA Practice, ML Project
|
|
45
|
-
- 🔧 **Auto-scaffolding** - Complete project structure generation
|
|
46
|
-
- 📝 **Documentation** - Auto-generated README, roadmap, .gitignore
|
|
47
|
-
- 🔄 **Git Integration** - Automatic Git initialization and first commit
|
|
48
|
-
- 🐙 **GitHub Integration** - Create and push to GitHub repository
|
|
49
|
-
- 🔒 **Visibility Control** - Choose public or private repositories
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## 📖 Usage
|
|
54
|
-
|
|
55
|
-
### Basic Usage
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
# Create a project with interactive prompts
|
|
59
|
-
zerostart
|
|
60
|
-
|
|
61
|
-
# Create a project with a specific name
|
|
62
|
-
zerostart my-project-name
|
|
63
|
-
|
|
64
|
-
# Check version
|
|
65
|
-
zerostart --version
|
|
66
|
-
|
|
67
|
-
# Get help
|
|
68
|
-
zerostart --help
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### Example Workflow
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
$ zerostart my-web-app
|
|
75
|
-
|
|
76
|
-
ZeroStart: Project Starter AI
|
|
77
|
-
|
|
78
|
-
? Select Programming Language: › Node.js
|
|
79
|
-
? Select Project Type: › Web App
|
|
80
|
-
? Select Repository Visibility: › Private
|
|
81
|
-
? Create GitHub Repository? › Yes
|
|
82
|
-
? Enter GitHub Personal Access Token: ********
|
|
83
|
-
|
|
84
|
-
✔ Generating project structure...
|
|
85
|
-
✔ Initializing Git...
|
|
86
|
-
✔ Creating GitHub Repository...
|
|
87
|
-
✔ Pushing to GitHub...
|
|
88
|
-
✔ Project 'my-web-app' created successfully!
|
|
89
|
-
|
|
90
|
-
Path: C:\Users\YourName\my-web-app
|
|
91
|
-
To get started:
|
|
92
|
-
cd my-web-app
|
|
93
|
-
code .
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
## 🛠️ Requirements
|
|
99
|
-
|
|
100
|
-
- **Node.js** (v18 or higher)
|
|
101
|
-
- **Git** (must be installed and in PATH)
|
|
102
|
-
- **GitHub Personal Access Token** (optional, for GitHub integration)
|
|
103
|
-
|
|
104
|
-
### Getting a GitHub Token
|
|
105
|
-
|
|
106
|
-
1. Go to [GitHub Settings → Developer settings → Personal access tokens](https://github.com/settings/tokens)
|
|
107
|
-
2. Click "Generate new token (classic)"
|
|
108
|
-
3. Select scopes: `repo` (full control of private repositories)
|
|
109
|
-
4. Copy the token and use it when prompted by ZeroStart
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
## 🏗️ What Gets Created
|
|
114
|
-
|
|
115
|
-
ZeroStart automatically generates:
|
|
116
|
-
|
|
117
|
-
```
|
|
118
|
-
my-project/
|
|
119
|
-
├── src/
|
|
120
|
-
│ └── (language-specific files)
|
|
121
|
-
├── .gitignore
|
|
122
|
-
├── README.md
|
|
123
|
-
├── roadmap.md
|
|
124
|
-
└── (additional config files based on language/type)
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
Plus:
|
|
128
|
-
- ✅ Git repository initialized
|
|
129
|
-
- ✅ Initial commit made
|
|
130
|
-
- ✅ GitHub repository created (if requested)
|
|
131
|
-
- ✅ Code pushed to GitHub (if requested)
|
|
132
|
-
|
|
133
|
-
---
|
|
134
|
-
|
|
135
|
-
## 🔧 Development
|
|
136
|
-
|
|
137
|
-
Want to contribute or modify ZeroStart?
|
|
138
|
-
|
|
139
|
-
### Setup
|
|
140
|
-
|
|
141
|
-
```bash
|
|
142
|
-
# Clone the repository
|
|
143
|
-
git clone https://github.com/yourusername/zerostart-cli.git
|
|
144
|
-
cd zerostart-cli
|
|
145
|
-
|
|
146
|
-
# Install dependencies
|
|
147
|
-
npm install
|
|
148
|
-
|
|
149
|
-
# Build the project
|
|
150
|
-
npm run compile
|
|
151
|
-
|
|
152
|
-
# Test locally
|
|
153
|
-
node ./out/cli.js --help
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
### Project Structure
|
|
157
|
-
|
|
158
|
-
```
|
|
159
|
-
src/
|
|
160
|
-
├── cli.ts # CLI entry point
|
|
161
|
-
├── extension.ts # VS Code extension entry (legacy)
|
|
162
|
-
├── types.ts # TypeScript interfaces
|
|
163
|
-
├── managers/
|
|
164
|
-
│ ├── TemplateManager.ts # Project scaffolding
|
|
165
|
-
│ ├── GitManager.ts # Git operations
|
|
166
|
-
│ └── ProjectManager.ts # Main orchestration
|
|
167
|
-
└── services/
|
|
168
|
-
├── GitHubServiceCLI.ts # GitHub API (CLI)
|
|
169
|
-
└── GitHubService.ts # GitHub API (VS Code)
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
---
|
|
173
|
-
|
|
174
|
-
## 📝 Publishing Updates
|
|
175
|
-
|
|
176
|
-
```bash
|
|
177
|
-
# Update version
|
|
178
|
-
npm version patch # or minor, or major
|
|
179
|
-
|
|
180
|
-
# Rebuild
|
|
181
|
-
npm run compile
|
|
182
|
-
|
|
183
|
-
# Publish to npm
|
|
184
|
-
npm publish
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
---
|
|
188
|
-
|
|
189
|
-
## 🐛 Troubleshooting
|
|
190
|
-
|
|
191
|
-
### "zerostart: command not found"
|
|
192
|
-
|
|
193
|
-
**Problem:** You installed without the `-g` flag.
|
|
194
|
-
|
|
195
|
-
**Solution:**
|
|
196
|
-
```bash
|
|
197
|
-
# Remove local installation
|
|
198
|
-
rm -rf node_modules package-lock.json
|
|
199
|
-
|
|
200
|
-
# Install globally
|
|
201
|
-
npm install -g zerostart-cli
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
### "Git is not installed"
|
|
205
|
-
|
|
206
|
-
**Problem:** Git is not in your system PATH.
|
|
207
|
-
|
|
208
|
-
**Solution:** Install Git from [git-scm.com](https://git-scm.com/) and ensure it's in your PATH.
|
|
209
|
-
|
|
210
|
-
### "GitHub repository creation failed"
|
|
211
|
-
|
|
212
|
-
**Problem:** Invalid or insufficient GitHub token permissions.
|
|
213
|
-
|
|
214
|
-
**Solution:** Generate a new token with `repo` scope from GitHub settings.
|
|
215
|
-
|
|
216
|
-
---
|
|
217
|
-
|
|
218
|
-
## 📄 License
|
|
219
|
-
|
|
220
|
-
MIT
|
|
221
|
-
|
|
222
|
-
---
|
|
223
|
-
|
|
224
|
-
## 🤝 Contributing
|
|
225
|
-
|
|
226
|
-
Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
|
|
227
|
-
|
|
228
|
-
---
|
|
229
|
-
|
|
230
|
-
## 📧 Support
|
|
231
|
-
|
|
232
|
-
- 📦 npm: [zerostart-cli](https://www.npmjs.com/package/zerostart-cli)
|
|
233
|
-
- 🐙 GitHub: [Issues](https://github.com/yourusername/zerostart-cli/issues)
|
|
234
|
-
|
|
235
|
-
---
|
|
236
|
-
|
|
237
|
-
**Made with ❤️ by ZeroStart Team**
|
|
1
|
+
# ZeroStart CLI 🚀
|
|
2
|
+
|
|
3
|
+
Create and deploy a complete project with **one command**.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/zerostart-cli)
|
|
6
|
+
[](https://www.npmjs.com/package/zerostart-cli)
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 📦 Installation
|
|
11
|
+
|
|
12
|
+
**⚠️ IMPORTANT: Use the `-g` flag to install globally!**
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npm install -g zerostart-cli
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
> **Why `-g`?** The `-g` flag installs ZeroStart globally on your system, making the `zerostart` command available from anywhere in your terminal. Without it, you'll only get `node_modules` and `package-lock.json` files, and the CLI won't work!
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 🚀 Quick Start
|
|
23
|
+
|
|
24
|
+
After installing globally, create a new project:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
zerostart my-awesome-project
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Or simply run:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
zerostart
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Then follow the interactive prompts!
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## ✨ Features
|
|
41
|
+
|
|
42
|
+
- 🎯 **Interactive CLI** - Guided prompts for project setup
|
|
43
|
+
- 🌐 **Multiple Languages** - Node.js, React, Python, Java, C++
|
|
44
|
+
- 📦 **Project Types** - Web App, CLI Tool, DSA Practice, ML Project
|
|
45
|
+
- 🔧 **Auto-scaffolding** - Complete project structure generation
|
|
46
|
+
- 📝 **Documentation** - Auto-generated README, roadmap, .gitignore
|
|
47
|
+
- 🔄 **Git Integration** - Automatic Git initialization and first commit
|
|
48
|
+
- 🐙 **GitHub Integration** - Create and push to GitHub repository
|
|
49
|
+
- 🔒 **Visibility Control** - Choose public or private repositories
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 📖 Usage
|
|
54
|
+
|
|
55
|
+
### Basic Usage
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
# Create a project with interactive prompts
|
|
59
|
+
zerostart
|
|
60
|
+
|
|
61
|
+
# Create a project with a specific name
|
|
62
|
+
zerostart my-project-name
|
|
63
|
+
|
|
64
|
+
# Check version
|
|
65
|
+
zerostart --version
|
|
66
|
+
|
|
67
|
+
# Get help
|
|
68
|
+
zerostart --help
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### Example Workflow
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
$ zerostart my-web-app
|
|
75
|
+
|
|
76
|
+
ZeroStart: Project Starter AI
|
|
77
|
+
|
|
78
|
+
? Select Programming Language: › Node.js
|
|
79
|
+
? Select Project Type: › Web App
|
|
80
|
+
? Select Repository Visibility: › Private
|
|
81
|
+
? Create GitHub Repository? › Yes
|
|
82
|
+
? Enter GitHub Personal Access Token: ********
|
|
83
|
+
|
|
84
|
+
✔ Generating project structure...
|
|
85
|
+
✔ Initializing Git...
|
|
86
|
+
✔ Creating GitHub Repository...
|
|
87
|
+
✔ Pushing to GitHub...
|
|
88
|
+
✔ Project 'my-web-app' created successfully!
|
|
89
|
+
|
|
90
|
+
Path: C:\Users\YourName\my-web-app
|
|
91
|
+
To get started:
|
|
92
|
+
cd my-web-app
|
|
93
|
+
code .
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 🛠️ Requirements
|
|
99
|
+
|
|
100
|
+
- **Node.js** (v18 or higher)
|
|
101
|
+
- **Git** (must be installed and in PATH)
|
|
102
|
+
- **GitHub Personal Access Token** (optional, for GitHub integration)
|
|
103
|
+
|
|
104
|
+
### Getting a GitHub Token
|
|
105
|
+
|
|
106
|
+
1. Go to [GitHub Settings → Developer settings → Personal access tokens](https://github.com/settings/tokens)
|
|
107
|
+
2. Click "Generate new token (classic)"
|
|
108
|
+
3. Select scopes: `repo` (full control of private repositories)
|
|
109
|
+
4. Copy the token and use it when prompted by ZeroStart
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 🏗️ What Gets Created
|
|
114
|
+
|
|
115
|
+
ZeroStart automatically generates:
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
my-project/
|
|
119
|
+
├── src/
|
|
120
|
+
│ └── (language-specific files)
|
|
121
|
+
├── .gitignore
|
|
122
|
+
├── README.md
|
|
123
|
+
├── roadmap.md
|
|
124
|
+
└── (additional config files based on language/type)
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Plus:
|
|
128
|
+
- ✅ Git repository initialized
|
|
129
|
+
- ✅ Initial commit made
|
|
130
|
+
- ✅ GitHub repository created (if requested)
|
|
131
|
+
- ✅ Code pushed to GitHub (if requested)
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## 🔧 Development
|
|
136
|
+
|
|
137
|
+
Want to contribute or modify ZeroStart?
|
|
138
|
+
|
|
139
|
+
### Setup
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
# Clone the repository
|
|
143
|
+
git clone https://github.com/yourusername/zerostart-cli.git
|
|
144
|
+
cd zerostart-cli
|
|
145
|
+
|
|
146
|
+
# Install dependencies
|
|
147
|
+
npm install
|
|
148
|
+
|
|
149
|
+
# Build the project
|
|
150
|
+
npm run compile
|
|
151
|
+
|
|
152
|
+
# Test locally
|
|
153
|
+
node ./out/cli.js --help
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Project Structure
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
src/
|
|
160
|
+
├── cli.ts # CLI entry point
|
|
161
|
+
├── extension.ts # VS Code extension entry (legacy)
|
|
162
|
+
├── types.ts # TypeScript interfaces
|
|
163
|
+
├── managers/
|
|
164
|
+
│ ├── TemplateManager.ts # Project scaffolding
|
|
165
|
+
│ ├── GitManager.ts # Git operations
|
|
166
|
+
│ └── ProjectManager.ts # Main orchestration
|
|
167
|
+
└── services/
|
|
168
|
+
├── GitHubServiceCLI.ts # GitHub API (CLI)
|
|
169
|
+
└── GitHubService.ts # GitHub API (VS Code)
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## 📝 Publishing Updates
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
# Update version
|
|
178
|
+
npm version patch # or minor, or major
|
|
179
|
+
|
|
180
|
+
# Rebuild
|
|
181
|
+
npm run compile
|
|
182
|
+
|
|
183
|
+
# Publish to npm
|
|
184
|
+
npm publish
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## 🐛 Troubleshooting
|
|
190
|
+
|
|
191
|
+
### "zerostart: command not found"
|
|
192
|
+
|
|
193
|
+
**Problem:** You installed without the `-g` flag.
|
|
194
|
+
|
|
195
|
+
**Solution:**
|
|
196
|
+
```bash
|
|
197
|
+
# Remove local installation
|
|
198
|
+
rm -rf node_modules package-lock.json
|
|
199
|
+
|
|
200
|
+
# Install globally
|
|
201
|
+
npm install -g zerostart-cli
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### "Git is not installed"
|
|
205
|
+
|
|
206
|
+
**Problem:** Git is not in your system PATH.
|
|
207
|
+
|
|
208
|
+
**Solution:** Install Git from [git-scm.com](https://git-scm.com/) and ensure it's in your PATH.
|
|
209
|
+
|
|
210
|
+
### "GitHub repository creation failed"
|
|
211
|
+
|
|
212
|
+
**Problem:** Invalid or insufficient GitHub token permissions.
|
|
213
|
+
|
|
214
|
+
**Solution:** Generate a new token with `repo` scope from GitHub settings.
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## 📄 License
|
|
219
|
+
|
|
220
|
+
MIT
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## 🤝 Contributing
|
|
225
|
+
|
|
226
|
+
Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for details.
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## 📧 Support
|
|
231
|
+
|
|
232
|
+
- 📦 npm: [zerostart-cli](https://www.npmjs.com/package/zerostart-cli)
|
|
233
|
+
- 🐙 GitHub: [Issues](https://github.com/yourusername/zerostart-cli/issues)
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
**Made with ❤️ by ZeroStart Team**
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# ZeroStart CLI - Verification Guide ✅
|
|
2
|
+
|
|
3
|
+
## ✅ Publication Status: **CONFIRMED**
|
|
4
|
+
|
|
5
|
+
Your CLI tool `zerostart-cli` is **successfully published** to npm!
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 📦 Published Package Details
|
|
10
|
+
|
|
11
|
+
- **Package Name:** `zerostart-cli`
|
|
12
|
+
- **Version:** `0.0.6`
|
|
13
|
+
- **Description:** Create and deploy a complete project with one command
|
|
14
|
+
- **Registry:** npm (public)
|
|
15
|
+
- **Package URL:** https://www.npmjs.com/package/zerostart-cli
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 🧪 Verification Tests
|
|
20
|
+
|
|
21
|
+
### Test 1: Check Package on npm Registry ✅
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm view zerostart-cli
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Expected Output:** Package information including version, description, and author
|
|
28
|
+
|
|
29
|
+
**Status:** ✅ PASSED
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
### Test 2: Local CLI Functionality ✅
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# From your project directory
|
|
37
|
+
node ./out/cli.js --version
|
|
38
|
+
node ./out/cli.js --help
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Expected Output:**
|
|
42
|
+
- Version: `0.0.6`
|
|
43
|
+
- Help menu with usage instructions
|
|
44
|
+
|
|
45
|
+
**Status:** ✅ PASSED
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
### Test 3: Install from npm (Fresh Installation)
|
|
50
|
+
|
|
51
|
+
To verify users can install your CLI globally:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# Install globally from npm
|
|
55
|
+
npm install -g zerostart-cli --force
|
|
56
|
+
|
|
57
|
+
# Verify installation
|
|
58
|
+
zerostart --version
|
|
59
|
+
zerostart --help
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Expected Output:**
|
|
63
|
+
- Version: `0.0.6`
|
|
64
|
+
- Help menu showing available commands
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
### Test 4: Create a Test Project
|
|
69
|
+
|
|
70
|
+
Create a test project to verify full functionality:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
# Create a new test directory
|
|
74
|
+
cd C:\Users\kusha\Downloads
|
|
75
|
+
mkdir zerostart-test
|
|
76
|
+
cd zerostart-test
|
|
77
|
+
|
|
78
|
+
# Run ZeroStart CLI
|
|
79
|
+
zerostart my-test-project
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Expected Behavior:**
|
|
83
|
+
1. Prompts for programming language
|
|
84
|
+
2. Prompts for project type
|
|
85
|
+
3. Prompts for repository visibility
|
|
86
|
+
4. Prompts for GitHub repository creation
|
|
87
|
+
5. Creates project structure
|
|
88
|
+
6. Initializes Git repository
|
|
89
|
+
7. (Optional) Creates GitHub repository and pushes
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 🎯 Next Steps
|
|
94
|
+
|
|
95
|
+
### 1. **Share Your CLI**
|
|
96
|
+
- Share the npm package link with others
|
|
97
|
+
- Add installation instructions to your README
|
|
98
|
+
- Promote on social media, GitHub, etc.
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
**Last Verified:** 2026-02-13
|
|
103
|
+
**Status:** ✅ All Systems Operational
|
package/out/cli.js
CHANGED
|
@@ -47,6 +47,7 @@ const types_1 = require("./types");
|
|
|
47
47
|
const TemplateManager_1 = require("./managers/TemplateManager");
|
|
48
48
|
const GitManager_1 = require("./managers/GitManager");
|
|
49
49
|
const GitHubServiceCLI_1 = require("./services/GitHubServiceCLI");
|
|
50
|
+
const child_process_1 = require("child_process");
|
|
50
51
|
const program = new commander_1.Command();
|
|
51
52
|
// Basic ASCII banner for maximum compatibility
|
|
52
53
|
function showBanner() {
|
|
@@ -57,17 +58,25 @@ function showBanner() {
|
|
|
57
58
|
console.log(chalk_1.default.cyan('------------------------------------------------------------'));
|
|
58
59
|
}
|
|
59
60
|
// Show GitHub token help (ASCII only)
|
|
61
|
+
// Open URL in default browser
|
|
62
|
+
function openUrl(url) {
|
|
63
|
+
const start = (process.platform == 'darwin' ? 'open' : process.platform == 'win32' ? 'start' : 'xdg-open');
|
|
64
|
+
(0, child_process_1.exec)(`${start} "${url}"`);
|
|
65
|
+
}
|
|
66
|
+
// Show GitHub token help (ASCII only)
|
|
60
67
|
function showGitHubTokenHelp() {
|
|
68
|
+
const tokenUrl = 'https://github.com/settings/tokens/new?scopes=repo&description=ZeroStart%20CLI%20Token';
|
|
61
69
|
console.log();
|
|
62
70
|
console.log(chalk_1.default.yellow(' GitHub Access Token Required:'));
|
|
63
71
|
console.log(chalk_1.default.gray(' +----------------------------------------------------------+'));
|
|
64
|
-
console.log(chalk_1.default.gray(' | ') + chalk_1.default.white('
|
|
65
|
-
console.log(chalk_1.default.gray(' | ') + chalk_1.default.cyan(
|
|
72
|
+
console.log(chalk_1.default.gray(' | ') + chalk_1.default.white('We are opening GitHub in your browser... ') + chalk_1.default.gray(' |'));
|
|
73
|
+
console.log(chalk_1.default.gray(' | ') + chalk_1.default.cyan(tokenUrl.substring(0, 50) + '...') + chalk_1.default.gray(' |'));
|
|
66
74
|
console.log(chalk_1.default.gray(' | |'));
|
|
67
|
-
console.log(chalk_1.default.gray(' | ') + chalk_1.default.white('1.
|
|
68
|
-
console.log(chalk_1.default.gray(' | ') + chalk_1.default.white('2.
|
|
75
|
+
console.log(chalk_1.default.gray(' | ') + chalk_1.default.white('1. Scroll down and click "Generate token" ') + chalk_1.default.gray(' |'));
|
|
76
|
+
console.log(chalk_1.default.gray(' | ') + chalk_1.default.white('2. Copy the token and paste it below ') + chalk_1.default.gray(' |'));
|
|
69
77
|
console.log(chalk_1.default.gray(' +----------------------------------------------------------+'));
|
|
70
78
|
console.log();
|
|
79
|
+
openUrl(tokenUrl);
|
|
71
80
|
}
|
|
72
81
|
program
|
|
73
82
|
.name('zerostart')
|
|
@@ -84,7 +93,7 @@ program
|
|
|
84
93
|
{
|
|
85
94
|
type: 'input',
|
|
86
95
|
name: 'name',
|
|
87
|
-
message:
|
|
96
|
+
message: 'Project Name:',
|
|
88
97
|
validate: (input) => {
|
|
89
98
|
if (input.trim() === '')
|
|
90
99
|
return chalk_1.default.red('Project name is required!');
|
|
@@ -125,22 +134,39 @@ program
|
|
|
125
134
|
}
|
|
126
135
|
]);
|
|
127
136
|
let githubToken = null;
|
|
137
|
+
let authMethod = 'Personal Access Token';
|
|
138
|
+
const gitManager = new GitManager_1.GitManager(); // Instantiate early for checks
|
|
128
139
|
// Only ask for token if user wants GitHub integration
|
|
129
140
|
if (answers.createRemote) {
|
|
130
|
-
|
|
131
|
-
const
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
141
|
+
const ghInstalled = await gitManager.checkGhInstalled();
|
|
142
|
+
const ghAuth = await gitManager.checkGhAuth();
|
|
143
|
+
if (ghInstalled && ghAuth) {
|
|
144
|
+
const authAnswer = await inquirer_1.default.prompt([
|
|
145
|
+
{
|
|
146
|
+
type: 'list',
|
|
147
|
+
name: 'method',
|
|
148
|
+
message: 'How would you like to authenticate?',
|
|
149
|
+
choices: ['GitHub CLI (Recommended)', 'Personal Access Token']
|
|
150
|
+
}
|
|
151
|
+
]);
|
|
152
|
+
authMethod = authAnswer.method;
|
|
153
|
+
}
|
|
154
|
+
if (authMethod === 'Personal Access Token') {
|
|
155
|
+
showGitHubTokenHelp();
|
|
156
|
+
const tokenAnswer = await inquirer_1.default.prompt([
|
|
157
|
+
{
|
|
158
|
+
type: 'password',
|
|
159
|
+
name: 'githubToken',
|
|
160
|
+
message: 'Enter GitHub Token (or press Enter to skip):',
|
|
161
|
+
mask: '*'
|
|
162
|
+
}
|
|
163
|
+
]);
|
|
164
|
+
githubToken = tokenAnswer.githubToken?.trim() || null;
|
|
165
|
+
if (!githubToken) {
|
|
166
|
+
console.log(chalk_1.default.yellow('\n ⚠️ Skipping GitHub integration (no token provided)'));
|
|
167
|
+
console.log(chalk_1.default.gray(' 💡 You can manually push later with: ') + chalk_1.default.cyan('git remote add origin <url>'));
|
|
168
|
+
answers.createRemote = false;
|
|
137
169
|
}
|
|
138
|
-
]);
|
|
139
|
-
githubToken = tokenAnswer.githubToken?.trim() || null;
|
|
140
|
-
if (!githubToken) {
|
|
141
|
-
console.log(chalk_1.default.yellow('\n ⚠️ Skipping GitHub integration (no token provided)'));
|
|
142
|
-
console.log(chalk_1.default.gray(' 💡 You can manually push later with: ') + chalk_1.default.cyan('git remote add origin <url>'));
|
|
143
|
-
answers.createRemote = false;
|
|
144
170
|
}
|
|
145
171
|
}
|
|
146
172
|
const cwd = process.cwd();
|
|
@@ -169,7 +195,7 @@ program
|
|
|
169
195
|
try {
|
|
170
196
|
// Managers
|
|
171
197
|
const templateManager = new TemplateManager_1.TemplateManager();
|
|
172
|
-
|
|
198
|
+
// gitManager already instantiated
|
|
173
199
|
const gitHubService = githubToken ? new GitHubServiceCLI_1.GitHubServiceCLI(githubToken) : null;
|
|
174
200
|
// 0. Check Git
|
|
175
201
|
if (!await gitManager.checkGitInstalled()) {
|
|
@@ -182,30 +208,62 @@ program
|
|
|
182
208
|
spinner.text = chalk_1.default.cyan('📁 Generating project structure...');
|
|
183
209
|
await templateManager.createProjectStructure(config);
|
|
184
210
|
spinner.succeed(chalk_1.default.green('✓ Project structure created'));
|
|
185
|
-
// 2. Git Init
|
|
211
|
+
// 2. Git Init & Initial Commits
|
|
186
212
|
spinner.start(chalk_1.default.cyan('🔄 Initializing Git repository...'));
|
|
187
213
|
await gitManager.init(config.path);
|
|
188
214
|
await gitManager.commit(config.path, "🎉 Initial commit by ZeroStart");
|
|
189
|
-
|
|
215
|
+
// Update README and create second commit
|
|
216
|
+
try {
|
|
217
|
+
const readmePath = path.join(config.path, 'README.md');
|
|
218
|
+
if (fs.existsSync(readmePath)) {
|
|
219
|
+
fs.appendFileSync(readmePath, '\n\nGenerated by ZeroStart 🚀');
|
|
220
|
+
await gitManager.commit(config.path, "📚 Readme updated");
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
console.warn(`Failed to update README: ${error}`);
|
|
225
|
+
}
|
|
226
|
+
spinner.succeed(chalk_1.default.green('✓ Git repository initialized with initial commits'));
|
|
190
227
|
// 3. GitHub
|
|
191
|
-
if (
|
|
228
|
+
if (answers.createRemote) {
|
|
192
229
|
spinner.start(chalk_1.default.cyan('🐙 Creating GitHub repository...'));
|
|
193
|
-
|
|
230
|
+
let repoUrl;
|
|
231
|
+
if (authMethod === 'GitHub CLI') {
|
|
232
|
+
try {
|
|
233
|
+
repoUrl = await gitManager.createRepoWithGh(config.path, config.name, config.isTheRepoPublic);
|
|
234
|
+
}
|
|
235
|
+
catch (error) {
|
|
236
|
+
repoUrl = undefined;
|
|
237
|
+
spinner.fail(chalk_1.default.red(`GH CLI Error: ${error.message}`));
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
else if (gitHubService) {
|
|
241
|
+
repoUrl = await gitHubService.createRepo(config);
|
|
242
|
+
}
|
|
194
243
|
if (repoUrl) {
|
|
195
244
|
spinner.succeed(chalk_1.default.green('✓ GitHub repository created'));
|
|
196
245
|
spinner.start(chalk_1.default.cyan('⬆️ Pushing to GitHub...'));
|
|
197
|
-
|
|
246
|
+
// If GH CLI used, remote is already set to 'origin'
|
|
247
|
+
if (authMethod !== 'GitHub CLI') {
|
|
248
|
+
await gitManager.addRemote(config.path, repoUrl);
|
|
249
|
+
}
|
|
198
250
|
await gitManager.push(config.path);
|
|
199
|
-
// Cleanup token if used in URL
|
|
200
|
-
if (repoUrl.includes('@github.com')) {
|
|
251
|
+
// Cleanup token if used in URL (only for non-CLI)
|
|
252
|
+
if (authMethod !== 'GitHub CLI' && repoUrl.includes('@github.com')) {
|
|
201
253
|
const cleanUrl = repoUrl.replace(/\/\/[^@]+@/, '//');
|
|
202
254
|
await gitManager.setRemoteUrl(config.path, cleanUrl);
|
|
203
255
|
}
|
|
204
256
|
spinner.succeed(chalk_1.default.green('✓ Pushed to GitHub'));
|
|
205
257
|
}
|
|
206
258
|
else {
|
|
207
|
-
|
|
208
|
-
|
|
259
|
+
// Only warn if we actually tried to create a repo (repoUrl is undefined but we entered the block)
|
|
260
|
+
if (!spinner.isSpinning) {
|
|
261
|
+
// It might have failed in GH CLI block with spinner.fail
|
|
262
|
+
}
|
|
263
|
+
else {
|
|
264
|
+
spinner.warn(chalk_1.default.yellow('⚠️ GitHub repository creation failed'));
|
|
265
|
+
console.log(chalk_1.default.gray(' 💡 Check your token permissions and try again'));
|
|
266
|
+
}
|
|
209
267
|
}
|
|
210
268
|
}
|
|
211
269
|
// Success message
|
|
@@ -218,7 +276,7 @@ program
|
|
|
218
276
|
console.log(chalk_1.default.gray(' ├─ ') + chalk_1.default.cyan(`cd ${name}`));
|
|
219
277
|
console.log(chalk_1.default.gray(' └─ ') + chalk_1.default.cyan('code .') + chalk_1.default.gray(' (or your favorite editor)'));
|
|
220
278
|
console.log();
|
|
221
|
-
if (!answers.createRemote || !githubToken) {
|
|
279
|
+
if (!answers.createRemote || !githubToken && authMethod !== 'GitHub CLI') {
|
|
222
280
|
console.log(chalk_1.default.bold.yellow(' 💡 To push to GitHub later:'));
|
|
223
281
|
console.log(chalk_1.default.gray(' ├─ Create a repository on GitHub'));
|
|
224
282
|
console.log(chalk_1.default.gray(' ├─ ') + chalk_1.default.cyan('git remote add origin <your-repo-url>'));
|
package/out/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,6 +91,45 @@ class GitManager {
|
|
|
91
91
|
console.warn(`Failed to set remote url: ${error.message}`);
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
|
+
async checkGhInstalled() {
|
|
95
|
+
try {
|
|
96
|
+
await exec('gh --version');
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
async checkGhAuth() {
|
|
104
|
+
try {
|
|
105
|
+
await exec('gh auth status');
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
async createRepoWithGh(cwd, name, isPublic) {
|
|
113
|
+
try {
|
|
114
|
+
const visibility = isPublic ? '--public' : '--private';
|
|
115
|
+
// Create repo and push
|
|
116
|
+
// gh repo create <name> --<visibility> --source=. --remote=origin --push
|
|
117
|
+
await exec(`gh repo create "${name}" ${visibility} --source=. --remote=origin`, { cwd });
|
|
118
|
+
return `https://github.com/${(await this.getGhUser())}/${name}`;
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
throw new Error(`Failed to create repo with gh: ${error.message}`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
async getGhUser() {
|
|
125
|
+
try {
|
|
126
|
+
const { stdout } = await exec('gh api user --jq .login');
|
|
127
|
+
return stdout.trim();
|
|
128
|
+
}
|
|
129
|
+
catch {
|
|
130
|
+
return 'unknown';
|
|
131
|
+
}
|
|
132
|
+
}
|
|
94
133
|
}
|
|
95
134
|
exports.GitManager = GitManager;
|
|
96
135
|
//# sourceMappingURL=GitManager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitManager.js","sourceRoot":"","sources":["../../src/managers/GitManager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,kDAAoC;AACpC,2CAA6B;AAE7B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAErC,MAAa,UAAU;IACZ,KAAK,CAAC,iBAAiB;QAC1B,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,eAAe,CAAC,CAAC;YAC5B,OAAO,IAAI,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,GAAW;QACzB,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,OAAe;QAC5C,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YACjC,MAAM,IAAI,CAAC,kBAAkB,OAAO,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAClD,wBAAwB;YACxB,MAAM,IAAI,CAAC,oBAAoB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,wFAAwF;YACxF,OAAO,CAAC,IAAI,CAAC,uCAAuC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,GAAW,EAAE,GAAW;QAC3C,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,yBAAyB,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,GAAW;QACzB,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,yBAAyB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAClE,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,GAAW;QAC9C,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,6BAA6B,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;IACL,CAAC;CACJ;
|
|
1
|
+
{"version":3,"file":"GitManager.js","sourceRoot":"","sources":["../../src/managers/GitManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -94,45 +94,45 @@ class TemplateManager {
|
|
|
94
94
|
fs.mkdirSync(fullPath, { recursive: true });
|
|
95
95
|
}
|
|
96
96
|
createReadme(config) {
|
|
97
|
-
const content = `# ${config.name}
|
|
98
|
-
|
|
99
|
-
## Description
|
|
100
|
-
${config.description}
|
|
101
|
-
|
|
102
|
-
## Tech Stack
|
|
103
|
-
- Language: ${config.language}
|
|
104
|
-
- Type: ${config.type}
|
|
105
|
-
|
|
106
|
-
## Installation
|
|
107
|
-
\`\`\`bash
|
|
108
|
-
# Clone the repository
|
|
109
|
-
git clone <repo-url>
|
|
110
|
-
cd ${config.name}
|
|
111
|
-
|
|
112
|
-
# Install dependencies
|
|
113
|
-
npm install # or pip install -r requirements.txt / mvn install
|
|
114
|
-
\`\`\`
|
|
115
|
-
|
|
116
|
-
## Usage
|
|
117
|
-
\`\`\`bash
|
|
118
|
-
npm start # or python main.py / java -jar target/app.jar
|
|
119
|
-
\`\`\`
|
|
120
|
-
|
|
121
|
-
## Future Scope
|
|
122
|
-
- Add more features
|
|
123
|
-
- Improve UI/UX
|
|
124
|
-
- optimize performance
|
|
97
|
+
const content = `# ${config.name}
|
|
98
|
+
|
|
99
|
+
## Description
|
|
100
|
+
${config.description}
|
|
101
|
+
|
|
102
|
+
## Tech Stack
|
|
103
|
+
- Language: ${config.language}
|
|
104
|
+
- Type: ${config.type}
|
|
105
|
+
|
|
106
|
+
## Installation
|
|
107
|
+
\`\`\`bash
|
|
108
|
+
# Clone the repository
|
|
109
|
+
git clone <repo-url>
|
|
110
|
+
cd ${config.name}
|
|
111
|
+
|
|
112
|
+
# Install dependencies
|
|
113
|
+
npm install # or pip install -r requirements.txt / mvn install
|
|
114
|
+
\`\`\`
|
|
115
|
+
|
|
116
|
+
## Usage
|
|
117
|
+
\`\`\`bash
|
|
118
|
+
npm start # or python main.py / java -jar target/app.jar
|
|
119
|
+
\`\`\`
|
|
120
|
+
|
|
121
|
+
## Future Scope
|
|
122
|
+
- Add more features
|
|
123
|
+
- Improve UI/UX
|
|
124
|
+
- optimize performance
|
|
125
125
|
`;
|
|
126
126
|
fs.writeFileSync(path.join(config.path, 'README.md'), content);
|
|
127
127
|
}
|
|
128
128
|
createRoadmap(config) {
|
|
129
|
-
const content = `# Roadmap for ${config.name}
|
|
130
|
-
|
|
131
|
-
- [ ] Initial Setup
|
|
132
|
-
- [ ] Core Features Implementation
|
|
133
|
-
- [ ] Testing & Debugging
|
|
134
|
-
- [ ] Documentation
|
|
135
|
-
- [ ] Deployment
|
|
129
|
+
const content = `# Roadmap for ${config.name}
|
|
130
|
+
|
|
131
|
+
- [ ] Initial Setup
|
|
132
|
+
- [ ] Core Features Implementation
|
|
133
|
+
- [ ] Testing & Debugging
|
|
134
|
+
- [ ] Documentation
|
|
135
|
+
- [ ] Deployment
|
|
136
136
|
`;
|
|
137
137
|
fs.writeFileSync(path.join(config.path, 'roadmap.md'), content);
|
|
138
138
|
}
|
|
@@ -179,35 +179,35 @@ npm start # or python main.py / java -jar target/app.jar
|
|
|
179
179
|
async createJavaStructure(config) {
|
|
180
180
|
const srcDir = path.join(config.path, 'src', 'main', 'java', 'com', 'example');
|
|
181
181
|
fs.mkdirSync(srcDir, { recursive: true });
|
|
182
|
-
const mainClass = `package com.example;
|
|
183
|
-
|
|
184
|
-
public class Main {
|
|
185
|
-
public static void main(String[] args) {
|
|
186
|
-
System.out.println("Hello, World!");
|
|
187
|
-
}
|
|
182
|
+
const mainClass = `package com.example;
|
|
183
|
+
|
|
184
|
+
public class Main {
|
|
185
|
+
public static void main(String[] args) {
|
|
186
|
+
System.out.println("Hello, World!");
|
|
187
|
+
}
|
|
188
188
|
}`;
|
|
189
189
|
fs.writeFileSync(path.join(srcDir, 'Main.java'), mainClass);
|
|
190
|
-
const pomXml = `<project>
|
|
191
|
-
<modelVersion>4.0.0</modelVersion>
|
|
192
|
-
<groupId>com.example</groupId>
|
|
193
|
-
<artifactId>${config.name}</artifactId>
|
|
194
|
-
<version>1.0-SNAPSHOT</version>
|
|
190
|
+
const pomXml = `<project>
|
|
191
|
+
<modelVersion>4.0.0</modelVersion>
|
|
192
|
+
<groupId>com.example</groupId>
|
|
193
|
+
<artifactId>${config.name}</artifactId>
|
|
194
|
+
<version>1.0-SNAPSHOT</version>
|
|
195
195
|
</project>`;
|
|
196
196
|
fs.writeFileSync(path.join(config.path, 'pom.xml'), pomXml);
|
|
197
197
|
}
|
|
198
198
|
async createCPPStructure(config) {
|
|
199
|
-
const mainCpp = `#include <iostream>
|
|
200
|
-
|
|
201
|
-
int main() {
|
|
202
|
-
std::cout << "Hello, World!" << std::endl;
|
|
203
|
-
return 0;
|
|
199
|
+
const mainCpp = `#include <iostream>
|
|
200
|
+
|
|
201
|
+
int main() {
|
|
202
|
+
std::cout << "Hello, World!" << std::endl;
|
|
203
|
+
return 0;
|
|
204
204
|
}`;
|
|
205
205
|
fs.writeFileSync(path.join(config.path, 'main.cpp'), mainCpp);
|
|
206
|
-
const cmake = `cmake_minimum_required(VERSION 3.10)
|
|
207
|
-
project(${config.name})
|
|
208
|
-
|
|
209
|
-
set(CMAKE_CXX_STANDARD 11)
|
|
210
|
-
|
|
206
|
+
const cmake = `cmake_minimum_required(VERSION 3.10)
|
|
207
|
+
project(${config.name})
|
|
208
|
+
|
|
209
|
+
set(CMAKE_CXX_STANDARD 11)
|
|
210
|
+
|
|
211
211
|
add_executable(${config.name} main.cpp)`;
|
|
212
212
|
fs.writeFileSync(path.join(config.path, 'CMakeLists.txt'), cmake);
|
|
213
213
|
}
|
|
@@ -240,91 +240,91 @@ add_executable(${config.name} main.cpp)`;
|
|
|
240
240
|
const src = path.join(config.path, 'src');
|
|
241
241
|
if (!fs.existsSync(src))
|
|
242
242
|
fs.mkdirSync(src);
|
|
243
|
-
fs.writeFileSync(path.join(src, 'App.tsx'), `
|
|
244
|
-
import React from 'react';
|
|
245
|
-
|
|
246
|
-
function App() {
|
|
247
|
-
return (
|
|
248
|
-
<div>
|
|
249
|
-
<h1>Hello React + Vite!</h1>
|
|
250
|
-
</div>
|
|
251
|
-
);
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
export default App;
|
|
243
|
+
fs.writeFileSync(path.join(src, 'App.tsx'), `
|
|
244
|
+
import React from 'react';
|
|
245
|
+
|
|
246
|
+
function App() {
|
|
247
|
+
return (
|
|
248
|
+
<div>
|
|
249
|
+
<h1>Hello React + Vite!</h1>
|
|
250
|
+
</div>
|
|
251
|
+
);
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
export default App;
|
|
255
255
|
`);
|
|
256
|
-
fs.writeFileSync(path.join(src, 'main.tsx'), `
|
|
257
|
-
import React from 'react'
|
|
258
|
-
import ReactDOM from 'react-dom/client'
|
|
259
|
-
import App from './App.tsx'
|
|
260
|
-
|
|
261
|
-
ReactDOM.createRoot(document.getElementById('root')!).render(
|
|
262
|
-
<React.StrictMode>
|
|
263
|
-
<App />
|
|
264
|
-
</React.StrictMode>,
|
|
265
|
-
)
|
|
256
|
+
fs.writeFileSync(path.join(src, 'main.tsx'), `
|
|
257
|
+
import React from 'react'
|
|
258
|
+
import ReactDOM from 'react-dom/client'
|
|
259
|
+
import App from './App.tsx'
|
|
260
|
+
|
|
261
|
+
ReactDOM.createRoot(document.getElementById('root')!).render(
|
|
262
|
+
<React.StrictMode>
|
|
263
|
+
<App />
|
|
264
|
+
</React.StrictMode>,
|
|
265
|
+
)
|
|
266
266
|
`);
|
|
267
|
-
fs.writeFileSync(path.join(config.path, 'index.html'), `
|
|
268
|
-
<!doctype html>
|
|
269
|
-
<html lang="en">
|
|
270
|
-
<head>
|
|
271
|
-
<meta charset="UTF-8" />
|
|
272
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
273
|
-
<title>${config.name}</title>
|
|
274
|
-
</head>
|
|
275
|
-
<body>
|
|
276
|
-
<div id="root"></div>
|
|
277
|
-
<script type="module" src="/src/main.tsx"></script>
|
|
278
|
-
</body>
|
|
279
|
-
</html>
|
|
267
|
+
fs.writeFileSync(path.join(config.path, 'index.html'), `
|
|
268
|
+
<!doctype html>
|
|
269
|
+
<html lang="en">
|
|
270
|
+
<head>
|
|
271
|
+
<meta charset="UTF-8" />
|
|
272
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
273
|
+
<title>${config.name}</title>
|
|
274
|
+
</head>
|
|
275
|
+
<body>
|
|
276
|
+
<div id="root"></div>
|
|
277
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
278
|
+
</body>
|
|
279
|
+
</html>
|
|
280
280
|
`);
|
|
281
|
-
fs.writeFileSync(path.join(config.path, 'vite.config.ts'), `
|
|
282
|
-
import { defineConfig } from 'vite'
|
|
283
|
-
import react from '@vitejs/plugin-react'
|
|
284
|
-
|
|
285
|
-
// https://vitejs.dev/config/
|
|
286
|
-
export default defineConfig({
|
|
287
|
-
plugins: [react()],
|
|
288
|
-
})
|
|
281
|
+
fs.writeFileSync(path.join(config.path, 'vite.config.ts'), `
|
|
282
|
+
import { defineConfig } from 'vite'
|
|
283
|
+
import react from '@vitejs/plugin-react'
|
|
284
|
+
|
|
285
|
+
// https://vitejs.dev/config/
|
|
286
|
+
export default defineConfig({
|
|
287
|
+
plugins: [react()],
|
|
288
|
+
})
|
|
289
289
|
`);
|
|
290
|
-
fs.writeFileSync(path.join(config.path, 'tsconfig.json'), `
|
|
291
|
-
{
|
|
292
|
-
"compilerOptions": {
|
|
293
|
-
"target": "ES2020",
|
|
294
|
-
"useDefineForClassFields": true,
|
|
295
|
-
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
|
296
|
-
"module": "ESNext",
|
|
297
|
-
"skipLibCheck": true,
|
|
298
|
-
|
|
299
|
-
/* Bundler mode */
|
|
300
|
-
"moduleResolution": "bundler",
|
|
301
|
-
"allowImportingTsExtensions": true,
|
|
302
|
-
"resolveJsonModule": true,
|
|
303
|
-
"isolatedModules": true,
|
|
304
|
-
"noEmit": true,
|
|
305
|
-
"jsx": "react-jsx",
|
|
306
|
-
|
|
307
|
-
/* Linting */
|
|
308
|
-
"strict": true,
|
|
309
|
-
"noUnusedLocals": true,
|
|
310
|
-
"noUnusedParameters": true,
|
|
311
|
-
"noFallthroughCasesInSwitch": true
|
|
312
|
-
},
|
|
313
|
-
"include": ["src"],
|
|
314
|
-
"references": [{ "path": "./tsconfig.node.json" }]
|
|
315
|
-
}
|
|
290
|
+
fs.writeFileSync(path.join(config.path, 'tsconfig.json'), `
|
|
291
|
+
{
|
|
292
|
+
"compilerOptions": {
|
|
293
|
+
"target": "ES2020",
|
|
294
|
+
"useDefineForClassFields": true,
|
|
295
|
+
"lib": ["ES2020", "DOM", "DOM.Iterable"],
|
|
296
|
+
"module": "ESNext",
|
|
297
|
+
"skipLibCheck": true,
|
|
298
|
+
|
|
299
|
+
/* Bundler mode */
|
|
300
|
+
"moduleResolution": "bundler",
|
|
301
|
+
"allowImportingTsExtensions": true,
|
|
302
|
+
"resolveJsonModule": true,
|
|
303
|
+
"isolatedModules": true,
|
|
304
|
+
"noEmit": true,
|
|
305
|
+
"jsx": "react-jsx",
|
|
306
|
+
|
|
307
|
+
/* Linting */
|
|
308
|
+
"strict": true,
|
|
309
|
+
"noUnusedLocals": true,
|
|
310
|
+
"noUnusedParameters": true,
|
|
311
|
+
"noFallthroughCasesInSwitch": true
|
|
312
|
+
},
|
|
313
|
+
"include": ["src"],
|
|
314
|
+
"references": [{ "path": "./tsconfig.node.json" }]
|
|
315
|
+
}
|
|
316
316
|
`);
|
|
317
|
-
fs.writeFileSync(path.join(config.path, 'tsconfig.node.json'), `
|
|
318
|
-
{
|
|
319
|
-
"compilerOptions": {
|
|
320
|
-
"composite": true,
|
|
321
|
-
"skipLibCheck": true,
|
|
322
|
-
"module": "ESNext",
|
|
323
|
-
"moduleResolution": "bundler",
|
|
324
|
-
"allowSyntheticDefaultImports": true
|
|
325
|
-
},
|
|
326
|
-
"include": ["vite.config.ts"]
|
|
327
|
-
}
|
|
317
|
+
fs.writeFileSync(path.join(config.path, 'tsconfig.node.json'), `
|
|
318
|
+
{
|
|
319
|
+
"compilerOptions": {
|
|
320
|
+
"composite": true,
|
|
321
|
+
"skipLibCheck": true,
|
|
322
|
+
"module": "ESNext",
|
|
323
|
+
"moduleResolution": "bundler",
|
|
324
|
+
"allowSyntheticDefaultImports": true
|
|
325
|
+
},
|
|
326
|
+
"include": ["vite.config.ts"]
|
|
327
|
+
}
|
|
328
328
|
`);
|
|
329
329
|
}
|
|
330
330
|
}
|
package/package.json
CHANGED
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "zerostart-cli",
|
|
3
|
-
"displayName": "ZeroStart",
|
|
4
|
-
"bin": {
|
|
5
|
-
"zerostart": "./out/cli.js"
|
|
6
|
-
},
|
|
7
|
-
"description": "Create and deploy a complete project with one command.",
|
|
8
|
-
"version": "0.0.
|
|
9
|
-
"engines": {
|
|
10
|
-
"vscode": "^1.85.0"
|
|
11
|
-
},
|
|
12
|
-
"categories": [
|
|
13
|
-
"Other"
|
|
14
|
-
],
|
|
15
|
-
"activationEvents": [],
|
|
16
|
-
"main": "./out/extension.js",
|
|
17
|
-
"contributes": {
|
|
18
|
-
"commands": [
|
|
19
|
-
{
|
|
20
|
-
"command": "zerostart.create",
|
|
21
|
-
"title": "ZeroStart"
|
|
22
|
-
}
|
|
23
|
-
]
|
|
24
|
-
},
|
|
25
|
-
"scripts": {
|
|
26
|
-
"vscode:prepublish": "npm run compile",
|
|
27
|
-
"compile": "tsc -p ./",
|
|
28
|
-
"watch": "tsc -watch -p ./",
|
|
29
|
-
"pretest": "npm run compile && npm run lint",
|
|
30
|
-
"lint": "eslint src --ext ts",
|
|
31
|
-
"test": "node ./out/test/runTest.js"
|
|
32
|
-
},
|
|
33
|
-
"devDependencies": {
|
|
34
|
-
"@types/glob": "^8.1.0",
|
|
35
|
-
"@types/inquirer": "^9.0.9",
|
|
36
|
-
"@types/mocha": "^10.0.6",
|
|
37
|
-
"@types/node": "18.x",
|
|
38
|
-
"@types/ora": "^3.1.0",
|
|
39
|
-
"@types/vscode": "^1.85.0",
|
|
40
|
-
"@typescript-eslint/eslint-plugin": "^6.13.1",
|
|
41
|
-
"@typescript-eslint/parser": "^6.13.1",
|
|
42
|
-
"@vscode/test-electron": "^2.3.8",
|
|
43
|
-
"eslint": "^8.54.0",
|
|
44
|
-
"glob": "^10.3.10",
|
|
45
|
-
"mocha": "^10.2.0",
|
|
46
|
-
"typescript": "^5.3.2"
|
|
47
|
-
},
|
|
48
|
-
"dependencies": {
|
|
49
|
-
"@octokit/rest": "^19.0.13",
|
|
50
|
-
"chalk": "^4.1.2",
|
|
51
|
-
"commander": "^14.0.3",
|
|
52
|
-
"inquirer": "^9.3.8",
|
|
53
|
-
"ora": "^5.4.1"
|
|
54
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "zerostart-cli",
|
|
3
|
+
"displayName": "ZeroStart",
|
|
4
|
+
"bin": {
|
|
5
|
+
"zerostart": "./out/cli.js"
|
|
6
|
+
},
|
|
7
|
+
"description": "Create and deploy a complete project with one command.",
|
|
8
|
+
"version": "0.0.8",
|
|
9
|
+
"engines": {
|
|
10
|
+
"vscode": "^1.85.0"
|
|
11
|
+
},
|
|
12
|
+
"categories": [
|
|
13
|
+
"Other"
|
|
14
|
+
],
|
|
15
|
+
"activationEvents": [],
|
|
16
|
+
"main": "./out/extension.js",
|
|
17
|
+
"contributes": {
|
|
18
|
+
"commands": [
|
|
19
|
+
{
|
|
20
|
+
"command": "zerostart.create",
|
|
21
|
+
"title": "ZeroStart"
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
"scripts": {
|
|
26
|
+
"vscode:prepublish": "npm run compile",
|
|
27
|
+
"compile": "tsc -p ./",
|
|
28
|
+
"watch": "tsc -watch -p ./",
|
|
29
|
+
"pretest": "npm run compile && npm run lint",
|
|
30
|
+
"lint": "eslint src --ext ts",
|
|
31
|
+
"test": "node ./out/test/runTest.js"
|
|
32
|
+
},
|
|
33
|
+
"devDependencies": {
|
|
34
|
+
"@types/glob": "^8.1.0",
|
|
35
|
+
"@types/inquirer": "^9.0.9",
|
|
36
|
+
"@types/mocha": "^10.0.6",
|
|
37
|
+
"@types/node": "18.x",
|
|
38
|
+
"@types/ora": "^3.1.0",
|
|
39
|
+
"@types/vscode": "^1.85.0",
|
|
40
|
+
"@typescript-eslint/eslint-plugin": "^6.13.1",
|
|
41
|
+
"@typescript-eslint/parser": "^6.13.1",
|
|
42
|
+
"@vscode/test-electron": "^2.3.8",
|
|
43
|
+
"eslint": "^8.54.0",
|
|
44
|
+
"glob": "^10.3.10",
|
|
45
|
+
"mocha": "^10.2.0",
|
|
46
|
+
"typescript": "^5.3.2"
|
|
47
|
+
},
|
|
48
|
+
"dependencies": {
|
|
49
|
+
"@octokit/rest": "^19.0.13",
|
|
50
|
+
"chalk": "^4.1.2",
|
|
51
|
+
"commander": "^14.0.3",
|
|
52
|
+
"inquirer": "^9.3.8",
|
|
53
|
+
"ora": "^5.4.1"
|
|
54
|
+
}
|
|
55
55
|
}
|