@loopress/cli 0.5.0 → 0.7.0
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 +140 -101
- package/dist/commands/composer/pull.d.ts +12 -0
- package/dist/commands/composer/pull.js +33 -0
- package/dist/commands/composer/push.d.ts +12 -0
- package/dist/commands/composer/push.js +49 -0
- package/dist/commands/init.js +15 -6
- package/dist/commands/login.js +1 -1
- package/dist/commands/logout.js +1 -1
- package/dist/commands/plugin/{require.d.ts → add.d.ts} +1 -1
- package/dist/commands/plugin/{require.js → add.js} +8 -8
- package/dist/commands/plugin/pull.js +11 -2
- package/dist/commands/plugin/push.js +13 -4
- package/dist/commands/project/config.d.ts +1 -0
- package/dist/commands/project/config.js +36 -17
- package/dist/commands/project/list.js +4 -5
- package/dist/commands/project/remove.js +33 -14
- package/dist/commands/project/switch.d.ts +2 -0
- package/dist/commands/project/switch.js +28 -9
- package/dist/commands/snippet/list.js +3 -3
- package/dist/commands/snippet/pull.d.ts +1 -1
- package/dist/commands/snippet/pull.js +7 -6
- package/dist/commands/snippet/push.d.ts +2 -2
- package/dist/commands/snippet/push.js +47 -15
- package/dist/commands/{project/switch-env.d.ts → status.d.ts} +3 -1
- package/dist/commands/status.js +66 -0
- package/dist/config/project-config.manager.d.ts +17 -10
- package/dist/config/project-config.manager.js +91 -44
- package/dist/config/types.d.ts +5 -2
- package/dist/lib/base.js +13 -3
- package/dist/types/snippet.d.ts +2 -0
- package/dist/utils/composer.d.ts +7 -0
- package/dist/utils/composer.js +33 -0
- package/dist/utils/snippet-plugin.d.ts +2 -1
- package/dist/utils/snippet-plugin.js +5 -4
- package/oclif.manifest.json +160 -72
- package/package.json +25 -6
- package/dist/commands/project/remove-env.d.ts +0 -6
- package/dist/commands/project/remove-env.js +0 -33
- package/dist/commands/project/switch-env.js +0 -33
package/oclif.manifest.json
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"login": {
|
|
27
27
|
"aliases": [],
|
|
28
28
|
"args": {},
|
|
29
|
-
"description": "Log in to Loopress
|
|
29
|
+
"description": "Log in to the Loopress console",
|
|
30
30
|
"examples": [
|
|
31
31
|
"$ lps login"
|
|
32
32
|
],
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"logout": {
|
|
50
50
|
"aliases": [],
|
|
51
51
|
"args": {},
|
|
52
|
-
"description": "Log out from Loopress console",
|
|
52
|
+
"description": "Log out from the Loopress console",
|
|
53
53
|
"examples": [
|
|
54
54
|
"$ lps logout"
|
|
55
55
|
],
|
|
@@ -69,13 +69,36 @@
|
|
|
69
69
|
"logout.js"
|
|
70
70
|
]
|
|
71
71
|
},
|
|
72
|
-
"
|
|
72
|
+
"status": {
|
|
73
73
|
"aliases": [],
|
|
74
74
|
"args": {},
|
|
75
|
-
"description": "
|
|
75
|
+
"description": "Show which WordPress project and environment commands will target",
|
|
76
76
|
"examples": [
|
|
77
|
-
"$ lps
|
|
78
|
-
|
|
77
|
+
"$ lps status"
|
|
78
|
+
],
|
|
79
|
+
"flags": {},
|
|
80
|
+
"hasDynamicHelp": false,
|
|
81
|
+
"hiddenAliases": [],
|
|
82
|
+
"id": "status",
|
|
83
|
+
"pluginAlias": "@loopress/cli",
|
|
84
|
+
"pluginName": "@loopress/cli",
|
|
85
|
+
"pluginType": "core",
|
|
86
|
+
"strict": true,
|
|
87
|
+
"enableJsonFlag": false,
|
|
88
|
+
"isESM": true,
|
|
89
|
+
"relativePath": [
|
|
90
|
+
"dist",
|
|
91
|
+
"commands",
|
|
92
|
+
"status.js"
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
"composer:pull": {
|
|
96
|
+
"aliases": [],
|
|
97
|
+
"args": {},
|
|
98
|
+
"description": "Pull composer.lock from WordPress",
|
|
99
|
+
"examples": [
|
|
100
|
+
"$ lps composer pull",
|
|
101
|
+
"$ lps composer pull --dry-run"
|
|
79
102
|
],
|
|
80
103
|
"flags": {
|
|
81
104
|
"password": {
|
|
@@ -112,7 +135,7 @@
|
|
|
112
135
|
},
|
|
113
136
|
"hasDynamicHelp": false,
|
|
114
137
|
"hiddenAliases": [],
|
|
115
|
-
"id": "
|
|
138
|
+
"id": "composer:pull",
|
|
116
139
|
"pluginAlias": "@loopress/cli",
|
|
117
140
|
"pluginName": "@loopress/cli",
|
|
118
141
|
"pluginType": "core",
|
|
@@ -122,17 +145,17 @@
|
|
|
122
145
|
"relativePath": [
|
|
123
146
|
"dist",
|
|
124
147
|
"commands",
|
|
125
|
-
"
|
|
148
|
+
"composer",
|
|
126
149
|
"pull.js"
|
|
127
150
|
]
|
|
128
151
|
},
|
|
129
|
-
"
|
|
152
|
+
"composer:push": {
|
|
130
153
|
"aliases": [],
|
|
131
154
|
"args": {},
|
|
132
|
-
"description": "
|
|
155
|
+
"description": "Push composer.json and composer.lock to WordPress and run composer install",
|
|
133
156
|
"examples": [
|
|
134
|
-
"$ lps
|
|
135
|
-
"$ lps
|
|
157
|
+
"$ lps composer push",
|
|
158
|
+
"$ lps composer push --dry-run"
|
|
136
159
|
],
|
|
137
160
|
"flags": {
|
|
138
161
|
"password": {
|
|
@@ -169,7 +192,7 @@
|
|
|
169
192
|
},
|
|
170
193
|
"hasDynamicHelp": false,
|
|
171
194
|
"hiddenAliases": [],
|
|
172
|
-
"id": "
|
|
195
|
+
"id": "composer:push",
|
|
173
196
|
"pluginAlias": "@loopress/cli",
|
|
174
197
|
"pluginName": "@loopress/cli",
|
|
175
198
|
"pluginType": "core",
|
|
@@ -178,15 +201,15 @@
|
|
|
178
201
|
"relativePath": [
|
|
179
202
|
"dist",
|
|
180
203
|
"commands",
|
|
181
|
-
"
|
|
204
|
+
"composer",
|
|
182
205
|
"push.js"
|
|
183
206
|
]
|
|
184
207
|
},
|
|
185
|
-
"plugin:
|
|
208
|
+
"plugin:add": {
|
|
186
209
|
"aliases": [],
|
|
187
210
|
"args": {
|
|
188
211
|
"slug": {
|
|
189
|
-
"description": "Plugin slug
|
|
212
|
+
"description": "Plugin slug on WordPress.org",
|
|
190
213
|
"name": "slug",
|
|
191
214
|
"required": true
|
|
192
215
|
},
|
|
@@ -195,11 +218,11 @@
|
|
|
195
218
|
"name": "version"
|
|
196
219
|
}
|
|
197
220
|
},
|
|
198
|
-
"description": "Add a plugin to loopress.json
|
|
221
|
+
"description": "Add a WordPress.org plugin to loopress.json",
|
|
199
222
|
"examples": [
|
|
200
|
-
"$ lps
|
|
201
|
-
"$ lps
|
|
202
|
-
"$ lps
|
|
223
|
+
"$ lps plugin add woocommerce",
|
|
224
|
+
"$ lps plugin add woocommerce 8.9.1",
|
|
225
|
+
"$ lps plugin add contact-form-7 --dry-run"
|
|
203
226
|
],
|
|
204
227
|
"flags": {
|
|
205
228
|
"password": {
|
|
@@ -236,7 +259,7 @@
|
|
|
236
259
|
},
|
|
237
260
|
"hasDynamicHelp": false,
|
|
238
261
|
"hiddenAliases": [],
|
|
239
|
-
"id": "plugin:
|
|
262
|
+
"id": "plugin:add",
|
|
240
263
|
"pluginAlias": "@loopress/cli",
|
|
241
264
|
"pluginName": "@loopress/cli",
|
|
242
265
|
"pluginType": "core",
|
|
@@ -247,20 +270,53 @@
|
|
|
247
270
|
"dist",
|
|
248
271
|
"commands",
|
|
249
272
|
"plugin",
|
|
250
|
-
"
|
|
273
|
+
"add.js"
|
|
251
274
|
]
|
|
252
275
|
},
|
|
253
|
-
"
|
|
276
|
+
"plugin:pull": {
|
|
254
277
|
"aliases": [],
|
|
255
278
|
"args": {},
|
|
256
|
-
"description": "
|
|
279
|
+
"description": "Pull installed plugins from WordPress into loopress.json",
|
|
257
280
|
"examples": [
|
|
258
|
-
"$ lps
|
|
281
|
+
"$ lps plugin pull",
|
|
282
|
+
"$ lps plugin pull --dry-run"
|
|
259
283
|
],
|
|
260
|
-
"flags": {
|
|
284
|
+
"flags": {
|
|
285
|
+
"password": {
|
|
286
|
+
"description": "WordPress application password (fallback; prefer `lps project config`)",
|
|
287
|
+
"helpGroup": "GLOBAL",
|
|
288
|
+
"name": "password",
|
|
289
|
+
"hasDynamicHelp": false,
|
|
290
|
+
"multiple": false,
|
|
291
|
+
"type": "option"
|
|
292
|
+
},
|
|
293
|
+
"url": {
|
|
294
|
+
"description": "WordPress URL (fallback; prefer `lps project config`)",
|
|
295
|
+
"helpGroup": "GLOBAL",
|
|
296
|
+
"name": "url",
|
|
297
|
+
"hasDynamicHelp": false,
|
|
298
|
+
"multiple": false,
|
|
299
|
+
"type": "option"
|
|
300
|
+
},
|
|
301
|
+
"user": {
|
|
302
|
+
"description": "WordPress username (fallback; prefer `lps project config`)",
|
|
303
|
+
"helpGroup": "GLOBAL",
|
|
304
|
+
"name": "user",
|
|
305
|
+
"hasDynamicHelp": false,
|
|
306
|
+
"multiple": false,
|
|
307
|
+
"type": "option"
|
|
308
|
+
},
|
|
309
|
+
"dry-run": {
|
|
310
|
+
"char": "d",
|
|
311
|
+
"description": "Show what would be written without making changes",
|
|
312
|
+
"name": "dry-run",
|
|
313
|
+
"allowNo": false,
|
|
314
|
+
"type": "boolean"
|
|
315
|
+
}
|
|
316
|
+
},
|
|
261
317
|
"hasDynamicHelp": false,
|
|
262
318
|
"hiddenAliases": [],
|
|
263
|
-
"id": "
|
|
319
|
+
"id": "plugin:pull",
|
|
264
320
|
"pluginAlias": "@loopress/cli",
|
|
265
321
|
"pluginName": "@loopress/cli",
|
|
266
322
|
"pluginType": "core",
|
|
@@ -270,45 +326,77 @@
|
|
|
270
326
|
"relativePath": [
|
|
271
327
|
"dist",
|
|
272
328
|
"commands",
|
|
273
|
-
"
|
|
274
|
-
"
|
|
329
|
+
"plugin",
|
|
330
|
+
"pull.js"
|
|
275
331
|
]
|
|
276
332
|
},
|
|
277
|
-
"
|
|
333
|
+
"plugin:push": {
|
|
278
334
|
"aliases": [],
|
|
279
335
|
"args": {},
|
|
280
|
-
"description": "
|
|
336
|
+
"description": "Push plugins to WordPress to match loopress.json",
|
|
281
337
|
"examples": [
|
|
282
|
-
"$ lps
|
|
338
|
+
"$ lps plugin push",
|
|
339
|
+
"$ lps plugin push --dry-run"
|
|
283
340
|
],
|
|
284
|
-
"flags": {
|
|
341
|
+
"flags": {
|
|
342
|
+
"password": {
|
|
343
|
+
"description": "WordPress application password (fallback; prefer `lps project config`)",
|
|
344
|
+
"helpGroup": "GLOBAL",
|
|
345
|
+
"name": "password",
|
|
346
|
+
"hasDynamicHelp": false,
|
|
347
|
+
"multiple": false,
|
|
348
|
+
"type": "option"
|
|
349
|
+
},
|
|
350
|
+
"url": {
|
|
351
|
+
"description": "WordPress URL (fallback; prefer `lps project config`)",
|
|
352
|
+
"helpGroup": "GLOBAL",
|
|
353
|
+
"name": "url",
|
|
354
|
+
"hasDynamicHelp": false,
|
|
355
|
+
"multiple": false,
|
|
356
|
+
"type": "option"
|
|
357
|
+
},
|
|
358
|
+
"user": {
|
|
359
|
+
"description": "WordPress username (fallback; prefer `lps project config`)",
|
|
360
|
+
"helpGroup": "GLOBAL",
|
|
361
|
+
"name": "user",
|
|
362
|
+
"hasDynamicHelp": false,
|
|
363
|
+
"multiple": false,
|
|
364
|
+
"type": "option"
|
|
365
|
+
},
|
|
366
|
+
"dry-run": {
|
|
367
|
+
"char": "d",
|
|
368
|
+
"description": "Show what would change without making changes",
|
|
369
|
+
"name": "dry-run",
|
|
370
|
+
"allowNo": false,
|
|
371
|
+
"type": "boolean"
|
|
372
|
+
}
|
|
373
|
+
},
|
|
285
374
|
"hasDynamicHelp": false,
|
|
286
375
|
"hiddenAliases": [],
|
|
287
|
-
"id": "
|
|
376
|
+
"id": "plugin:push",
|
|
288
377
|
"pluginAlias": "@loopress/cli",
|
|
289
378
|
"pluginName": "@loopress/cli",
|
|
290
379
|
"pluginType": "core",
|
|
291
380
|
"strict": true,
|
|
292
|
-
"enableJsonFlag": false,
|
|
293
381
|
"isESM": true,
|
|
294
382
|
"relativePath": [
|
|
295
383
|
"dist",
|
|
296
384
|
"commands",
|
|
297
|
-
"
|
|
298
|
-
"
|
|
385
|
+
"plugin",
|
|
386
|
+
"push.js"
|
|
299
387
|
]
|
|
300
388
|
},
|
|
301
|
-
"project:
|
|
389
|
+
"project:config": {
|
|
302
390
|
"aliases": [],
|
|
303
391
|
"args": {},
|
|
304
|
-
"description": "
|
|
392
|
+
"description": "Add or update a WordPress project environment",
|
|
305
393
|
"examples": [
|
|
306
|
-
"$ lps project
|
|
394
|
+
"$ lps project config"
|
|
307
395
|
],
|
|
308
396
|
"flags": {},
|
|
309
397
|
"hasDynamicHelp": false,
|
|
310
398
|
"hiddenAliases": [],
|
|
311
|
-
"id": "project:
|
|
399
|
+
"id": "project:config",
|
|
312
400
|
"pluginAlias": "@loopress/cli",
|
|
313
401
|
"pluginName": "@loopress/cli",
|
|
314
402
|
"pluginType": "core",
|
|
@@ -319,20 +407,20 @@
|
|
|
319
407
|
"dist",
|
|
320
408
|
"commands",
|
|
321
409
|
"project",
|
|
322
|
-
"
|
|
410
|
+
"config.js"
|
|
323
411
|
]
|
|
324
412
|
},
|
|
325
|
-
"project:
|
|
413
|
+
"project:list": {
|
|
326
414
|
"aliases": [],
|
|
327
415
|
"args": {},
|
|
328
|
-
"description": "
|
|
416
|
+
"description": "List configured WordPress projects",
|
|
329
417
|
"examples": [
|
|
330
|
-
"$ lps project
|
|
418
|
+
"$ lps project list"
|
|
331
419
|
],
|
|
332
420
|
"flags": {},
|
|
333
421
|
"hasDynamicHelp": false,
|
|
334
422
|
"hiddenAliases": [],
|
|
335
|
-
"id": "project:
|
|
423
|
+
"id": "project:list",
|
|
336
424
|
"pluginAlias": "@loopress/cli",
|
|
337
425
|
"pluginName": "@loopress/cli",
|
|
338
426
|
"pluginType": "core",
|
|
@@ -343,20 +431,20 @@
|
|
|
343
431
|
"dist",
|
|
344
432
|
"commands",
|
|
345
433
|
"project",
|
|
346
|
-
"
|
|
434
|
+
"list.js"
|
|
347
435
|
]
|
|
348
436
|
},
|
|
349
|
-
"project:
|
|
437
|
+
"project:remove": {
|
|
350
438
|
"aliases": [],
|
|
351
439
|
"args": {},
|
|
352
|
-
"description": "
|
|
440
|
+
"description": "Remove one or more WordPress projects or environments",
|
|
353
441
|
"examples": [
|
|
354
|
-
"$ lps project
|
|
442
|
+
"$ lps project remove"
|
|
355
443
|
],
|
|
356
444
|
"flags": {},
|
|
357
445
|
"hasDynamicHelp": false,
|
|
358
446
|
"hiddenAliases": [],
|
|
359
|
-
"id": "project:
|
|
447
|
+
"id": "project:remove",
|
|
360
448
|
"pluginAlias": "@loopress/cli",
|
|
361
449
|
"pluginName": "@loopress/cli",
|
|
362
450
|
"pluginType": "core",
|
|
@@ -367,13 +455,13 @@
|
|
|
367
455
|
"dist",
|
|
368
456
|
"commands",
|
|
369
457
|
"project",
|
|
370
|
-
"
|
|
458
|
+
"remove.js"
|
|
371
459
|
]
|
|
372
460
|
},
|
|
373
461
|
"project:switch": {
|
|
374
462
|
"aliases": [],
|
|
375
463
|
"args": {},
|
|
376
|
-
"description": "Switch the active project",
|
|
464
|
+
"description": "Switch the active project and environment",
|
|
377
465
|
"examples": [
|
|
378
466
|
"$ lps project switch"
|
|
379
467
|
],
|
|
@@ -399,9 +487,9 @@
|
|
|
399
487
|
"args": {},
|
|
400
488
|
"description": "List snippets from WordPress",
|
|
401
489
|
"examples": [
|
|
402
|
-
"$ lps
|
|
403
|
-
"$ lps
|
|
404
|
-
"$ lps
|
|
490
|
+
"$ lps snippet list",
|
|
491
|
+
"$ lps snippet list --url http://example.com",
|
|
492
|
+
"$ lps snippet list --plugin wpcode"
|
|
405
493
|
],
|
|
406
494
|
"flags": {
|
|
407
495
|
"password": {
|
|
@@ -474,10 +562,10 @@
|
|
|
474
562
|
},
|
|
475
563
|
"description": "Pull snippets from WordPress",
|
|
476
564
|
"examples": [
|
|
477
|
-
"$ lps
|
|
478
|
-
"$ lps
|
|
479
|
-
"$ lps
|
|
480
|
-
"$ lps
|
|
565
|
+
"$ lps snippet pull",
|
|
566
|
+
"$ lps snippet pull --url http://example.com",
|
|
567
|
+
"$ lps snippet pull --path ./snippets",
|
|
568
|
+
"$ lps snippet pull --plugin wpcode"
|
|
481
569
|
],
|
|
482
570
|
"flags": {
|
|
483
571
|
"password": {
|
|
@@ -504,10 +592,10 @@
|
|
|
504
592
|
"multiple": false,
|
|
505
593
|
"type": "option"
|
|
506
594
|
},
|
|
507
|
-
"
|
|
595
|
+
"dry-run": {
|
|
508
596
|
"char": "d",
|
|
509
|
-
"description": "
|
|
510
|
-
"name": "
|
|
597
|
+
"description": "Show what would be written without making changes",
|
|
598
|
+
"name": "dry-run",
|
|
511
599
|
"allowNo": false,
|
|
512
600
|
"type": "boolean"
|
|
513
601
|
},
|
|
@@ -548,12 +636,12 @@
|
|
|
548
636
|
"name": "path"
|
|
549
637
|
}
|
|
550
638
|
},
|
|
551
|
-
"description": "Push snippets to WordPress",
|
|
639
|
+
"description": "Push snippets to WordPress. Local snippet files created or updated remotely are renamed on disk to the `<id>-<slug>` convention.",
|
|
552
640
|
"examples": [
|
|
553
|
-
"$ lps
|
|
554
|
-
"$ lps
|
|
555
|
-
"$ lps
|
|
556
|
-
"$ lps
|
|
641
|
+
"$ lps snippet push",
|
|
642
|
+
"$ lps snippet push --url http://example.com",
|
|
643
|
+
"$ lps snippet push --path ./snippets",
|
|
644
|
+
"$ lps snippet push --plugin wpcode"
|
|
557
645
|
],
|
|
558
646
|
"flags": {
|
|
559
647
|
"password": {
|
|
@@ -580,10 +668,10 @@
|
|
|
580
668
|
"multiple": false,
|
|
581
669
|
"type": "option"
|
|
582
670
|
},
|
|
583
|
-
"
|
|
671
|
+
"dry-run": {
|
|
584
672
|
"char": "d",
|
|
585
|
-
"description": "
|
|
586
|
-
"name": "
|
|
673
|
+
"description": "Show what would change without making changes",
|
|
674
|
+
"name": "dry-run",
|
|
587
675
|
"allowNo": false,
|
|
588
676
|
"type": "boolean"
|
|
589
677
|
},
|
|
@@ -616,5 +704,5 @@
|
|
|
616
704
|
]
|
|
617
705
|
}
|
|
618
706
|
},
|
|
619
|
-
"version": "0.
|
|
707
|
+
"version": "0.7.0"
|
|
620
708
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loopress/cli",
|
|
3
3
|
"description": "CLI tool for syncing WordPress CodeSnippets, styles, and menus via the REST API",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.7.0",
|
|
5
5
|
"author": "jean-smaug",
|
|
6
6
|
"bin": {
|
|
7
7
|
"loopress": "bin/run.js",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@inquirer/prompts": "^8.5.2",
|
|
15
15
|
"@oclif/core": "^4.11.11",
|
|
16
|
-
"@oclif/plugin-help": "^6.2.
|
|
16
|
+
"@oclif/plugin-help": "^6.2.53",
|
|
17
17
|
"@oclif/plugin-plugins": "^5.4.80",
|
|
18
18
|
"glob": "13.0.6",
|
|
19
19
|
"got": "^15.0.7",
|
|
@@ -24,15 +24,16 @@
|
|
|
24
24
|
"@oclif/prettier-config": "^0.2.1",
|
|
25
25
|
"@oclif/test": "^4.1.20",
|
|
26
26
|
"@types/node": "26.0.1",
|
|
27
|
+
"@vitest/coverage-v8": "4.1.9",
|
|
27
28
|
"eslint": "^9",
|
|
28
29
|
"eslint-config-oclif": "^6.0.174",
|
|
29
30
|
"eslint-config-prettier": "^10",
|
|
30
|
-
"oclif": "^4.23.
|
|
31
|
-
"prettier": "3.9.
|
|
31
|
+
"oclif": "^4.23.24",
|
|
32
|
+
"prettier": "3.9.4",
|
|
32
33
|
"shx": "^0.4.0",
|
|
33
34
|
"tsx": "4.22.4",
|
|
34
35
|
"typescript": "^6.0.3",
|
|
35
|
-
"vitest": "^
|
|
36
|
+
"vitest": "^4.1.9"
|
|
36
37
|
},
|
|
37
38
|
"engines": {
|
|
38
39
|
"node": ">=18.0.0"
|
|
@@ -48,6 +49,10 @@
|
|
|
48
49
|
],
|
|
49
50
|
"license": "MPL-2.0",
|
|
50
51
|
"main": "dist/index.js",
|
|
52
|
+
"exports": {
|
|
53
|
+
".": "./dist/index.js",
|
|
54
|
+
"./schema": "./loopress.schema.json"
|
|
55
|
+
},
|
|
51
56
|
"type": "module",
|
|
52
57
|
"oclif": {
|
|
53
58
|
"bin": "lps",
|
|
@@ -61,7 +66,21 @@
|
|
|
61
66
|
"plugins": [
|
|
62
67
|
"@oclif/plugin-help"
|
|
63
68
|
],
|
|
64
|
-
"topicSeparator": " "
|
|
69
|
+
"topicSeparator": " ",
|
|
70
|
+
"topics": {
|
|
71
|
+
"composer": {
|
|
72
|
+
"description": "Sync composer.json and composer.lock between your project and WordPress"
|
|
73
|
+
},
|
|
74
|
+
"plugin": {
|
|
75
|
+
"description": "Manage WordPress.org plugins tracked in loopress.json"
|
|
76
|
+
},
|
|
77
|
+
"project": {
|
|
78
|
+
"description": "Manage WordPress project and environment configurations"
|
|
79
|
+
},
|
|
80
|
+
"snippet": {
|
|
81
|
+
"description": "Manage WordPress code snippets"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
65
84
|
},
|
|
66
85
|
"repository": {
|
|
67
86
|
"type": "git",
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { checkbox } from '@inquirer/prompts';
|
|
2
|
-
import { Command } from '@oclif/core';
|
|
3
|
-
import { configManager } from '../../config/project-config.manager.js';
|
|
4
|
-
export default class RemoveEnv extends Command {
|
|
5
|
-
static description = 'Remove one or more environments from the current project';
|
|
6
|
-
static examples = ['$ lps project remove-env'];
|
|
7
|
-
async run() {
|
|
8
|
-
await this.parse(RemoveEnv);
|
|
9
|
-
const project = configManager.getCurrentProject();
|
|
10
|
-
if (!project) {
|
|
11
|
-
this.error('No project configured. Run `lps project config` first.');
|
|
12
|
-
}
|
|
13
|
-
const envs = configManager.listEnvironments(project.name);
|
|
14
|
-
if (envs.length === 0) {
|
|
15
|
-
this.error('No environments configured.');
|
|
16
|
-
}
|
|
17
|
-
const chosen = await checkbox({
|
|
18
|
-
choices: envs.map((env) => ({
|
|
19
|
-
name: `${env.isCurrent ? '●' : '○'} ${env.name.padEnd(20)} ${env.url}${env.isCurrent ? ' [current]' : ''}`,
|
|
20
|
-
value: env.name,
|
|
21
|
-
})),
|
|
22
|
-
message: 'Select environments to remove',
|
|
23
|
-
});
|
|
24
|
-
if (chosen.length === 0) {
|
|
25
|
-
this.log('Nothing removed.');
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
for (const envName of chosen) {
|
|
29
|
-
configManager.removeEnvironment(project.name, envName);
|
|
30
|
-
}
|
|
31
|
-
this.log(`✓ Removed: ${chosen.join(', ')}`);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { select } from '@inquirer/prompts';
|
|
2
|
-
import { Command } from '@oclif/core';
|
|
3
|
-
import { configManager } from '../../config/project-config.manager.js';
|
|
4
|
-
export default class SwitchEnv extends Command {
|
|
5
|
-
static description = 'Switch the active environment within the current project';
|
|
6
|
-
static examples = ['$ lps project switch-env'];
|
|
7
|
-
async run() {
|
|
8
|
-
await this.parse(SwitchEnv);
|
|
9
|
-
const project = configManager.getCurrentProject();
|
|
10
|
-
if (!project) {
|
|
11
|
-
this.error('No project configured. Run `lps project config` first.');
|
|
12
|
-
}
|
|
13
|
-
const envs = configManager.listEnvironments(project.name);
|
|
14
|
-
if (envs.length === 0) {
|
|
15
|
-
this.error('No environments configured for this project.');
|
|
16
|
-
}
|
|
17
|
-
if (envs.length === 1) {
|
|
18
|
-
configManager.setCurrentEnv(project.name, envs[0].name);
|
|
19
|
-
this.log(`✓ Switched to "${project.name}/${envs[0].name}"`);
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
const chosen = await select({
|
|
23
|
-
choices: envs.map((env) => ({
|
|
24
|
-
name: `${env.isCurrent ? '●' : '○'} ${env.name.padEnd(20)} ${env.url}${env.isCurrent ? ' [current]' : ''}`,
|
|
25
|
-
value: env.name,
|
|
26
|
-
})),
|
|
27
|
-
default: envs.find((e) => e.isCurrent)?.name,
|
|
28
|
-
message: `Select environment for "${project.name}"`,
|
|
29
|
-
});
|
|
30
|
-
configManager.setCurrentEnv(project.name, chosen);
|
|
31
|
-
this.log(`✓ Switched to "${project.name}/${chosen}"`);
|
|
32
|
-
}
|
|
33
|
-
}
|