gsd-init 1.0.7 → 1.0.9
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/bin/gsd-init.js +22 -5
- package/package.json +1 -1
- package/templates/scripts/start.sh +2 -2
package/bin/gsd-init.js
CHANGED
|
@@ -135,14 +135,15 @@ function prompt(question) {
|
|
|
135
135
|
});
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
-
function printSummary(projDir) {
|
|
138
|
+
function printSummary(projDir, projectName) {
|
|
139
139
|
var gsdScripts = path.join(gsdRoot(projDir), 'scripts');
|
|
140
|
+
var name = projectName || path.basename(projDir);
|
|
140
141
|
console.log([
|
|
141
142
|
'',
|
|
142
143
|
'Done! Next steps:',
|
|
143
|
-
' ' + path.join(gsdScripts, 'start.sh')
|
|
144
|
+
' ' + path.join(gsdScripts, 'start.sh'),
|
|
144
145
|
'',
|
|
145
|
-
' Creates tmux sessions gsd-observer
|
|
146
|
+
' Creates tmux sessions gsd-observer-' + name + ' and gsd-worker-' + name + '.',
|
|
146
147
|
' Opens Terminal windows attached to each session.',
|
|
147
148
|
'',
|
|
148
149
|
' Observer agent: ' + path.join(gsdRoot(projDir), 'agents', 'gsd-observer.md'),
|
|
@@ -153,7 +154,17 @@ function printSummary(projDir) {
|
|
|
153
154
|
async function run() {
|
|
154
155
|
var args = process.argv.slice(2);
|
|
155
156
|
var skipPrompt = args.indexOf('--yes') !== -1 || args.indexOf('-y') !== -1;
|
|
156
|
-
var
|
|
157
|
+
var positional = args.filter(function(a) { return !a.startsWith('-'); });
|
|
158
|
+
var projectName = positional[0] || null;
|
|
159
|
+
|
|
160
|
+
var projDir;
|
|
161
|
+
if (process.env.GSD_INIT_PROJ_DIR) {
|
|
162
|
+
projDir = process.env.GSD_INIT_PROJ_DIR;
|
|
163
|
+
} else if (projectName) {
|
|
164
|
+
projDir = path.join(process.cwd(), projectName);
|
|
165
|
+
} else {
|
|
166
|
+
projDir = process.cwd();
|
|
167
|
+
}
|
|
157
168
|
var obsRoot = gsdRoot(projDir);
|
|
158
169
|
var gsdEntry = makeGsdEntry(projDir);
|
|
159
170
|
|
|
@@ -181,6 +192,12 @@ async function run() {
|
|
|
181
192
|
}
|
|
182
193
|
}
|
|
183
194
|
|
|
195
|
+
// Step 0: create project folder if a name was given
|
|
196
|
+
if (projectName) {
|
|
197
|
+
try { mkdirpSync(projDir); }
|
|
198
|
+
catch (e) { console.error('Error creating project folder ' + projDir + ': ' + e.message); process.exit(1); }
|
|
199
|
+
}
|
|
200
|
+
|
|
184
201
|
// Step 1: create .gsd/ subdirs
|
|
185
202
|
var subdirs = ['agents', 'hooks', 'scripts', 'schema'];
|
|
186
203
|
for (var j = 0; j < subdirs.length; j++) {
|
|
@@ -206,7 +223,7 @@ async function run() {
|
|
|
206
223
|
try { mergeSettings(projDir, gsdEntry); }
|
|
207
224
|
catch (e) { console.error(e.message); process.exit(1); }
|
|
208
225
|
|
|
209
|
-
printSummary(projDir);
|
|
226
|
+
printSummary(projDir, projectName);
|
|
210
227
|
}
|
|
211
228
|
|
|
212
229
|
if (require.main === module) {
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bash
|
|
2
2
|
set -euo pipefail
|
|
3
3
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
4
|
-
PROJECT_DIR="${
|
|
5
|
-
PROJECT_NAME="$
|
|
4
|
+
PROJECT_DIR="$(cd "${SCRIPT_DIR}/../.." && pwd)"
|
|
5
|
+
PROJECT_NAME="$(basename "$PROJECT_DIR")"
|
|
6
6
|
|
|
7
7
|
export GSD_OBSERVER_SESSION="gsd-observer-${PROJECT_NAME}"
|
|
8
8
|
export GSD_WORKER_SESSION="gsd-worker-${PROJECT_NAME}"
|