@git.zone/cli 1.16.9 → 1.17.2
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/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/gitzone.cli.js +8 -1
- package/dist_ts/mod_format/format.packagejson.js +3 -3
- package/dist_ts/mod_services/classes.dockercontainer.d.ts +68 -0
- package/dist_ts/mod_services/classes.dockercontainer.js +194 -0
- package/dist_ts/mod_services/classes.serviceconfiguration.d.ts +69 -0
- package/dist_ts/mod_services/classes.serviceconfiguration.js +195 -0
- package/dist_ts/mod_services/classes.servicemanager.d.ts +49 -0
- package/dist_ts/mod_services/classes.servicemanager.js +364 -0
- package/dist_ts/mod_services/helpers.d.ts +24 -0
- package/dist_ts/mod_services/helpers.js +108 -0
- package/dist_ts/mod_services/index.d.ts +1 -0
- package/dist_ts/mod_services/index.js +184 -0
- package/dist_ts/mod_services/mod.plugins.d.ts +7 -0
- package/dist_ts/mod_services/mod.plugins.js +8 -0
- package/dist_ts/plugins.d.ts +6 -1
- package/dist_ts/plugins.js +7 -2
- package/package.json +6 -5
- package/readme.md +123 -16
- package/readme.plan.md +119 -188
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/gitzone.cli.ts +8 -0
- package/ts/mod_format/format.packagejson.ts +2 -2
- package/ts/mod_services/classes.dockercontainer.ts +227 -0
- package/ts/mod_services/classes.serviceconfiguration.ts +246 -0
- package/ts/mod_services/classes.servicemanager.ts +424 -0
- package/ts/mod_services/helpers.ts +123 -0
- package/ts/mod_services/index.ts +219 -0
- package/ts/mod_services/mod.plugins.ts +9 -0
- package/ts/plugins.ts +10 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import * as plugins from './mod.plugins.js';
|
|
2
|
+
import * as helpers from './helpers.js';
|
|
3
|
+
import { ServiceManager } from './classes.servicemanager.js';
|
|
4
|
+
import { logger } from '../gitzone.logging.js';
|
|
5
|
+
export const run = async (argvArg) => {
|
|
6
|
+
const serviceManager = new ServiceManager();
|
|
7
|
+
await serviceManager.init();
|
|
8
|
+
const command = argvArg._[1] || 'help';
|
|
9
|
+
const service = argvArg._[2] || 'all';
|
|
10
|
+
switch (command) {
|
|
11
|
+
case 'start':
|
|
12
|
+
await handleStart(serviceManager, service);
|
|
13
|
+
break;
|
|
14
|
+
case 'stop':
|
|
15
|
+
await handleStop(serviceManager, service);
|
|
16
|
+
break;
|
|
17
|
+
case 'restart':
|
|
18
|
+
await handleRestart(serviceManager, service);
|
|
19
|
+
break;
|
|
20
|
+
case 'status':
|
|
21
|
+
await serviceManager.showStatus();
|
|
22
|
+
break;
|
|
23
|
+
case 'config':
|
|
24
|
+
await serviceManager.showConfig();
|
|
25
|
+
break;
|
|
26
|
+
case 'compass':
|
|
27
|
+
await serviceManager.showCompassConnection();
|
|
28
|
+
break;
|
|
29
|
+
case 'logs':
|
|
30
|
+
const lines = parseInt(argvArg._[3]) || 20;
|
|
31
|
+
await serviceManager.showLogs(service, lines);
|
|
32
|
+
break;
|
|
33
|
+
case 'remove':
|
|
34
|
+
await handleRemove(serviceManager);
|
|
35
|
+
break;
|
|
36
|
+
case 'clean':
|
|
37
|
+
await handleClean(serviceManager);
|
|
38
|
+
break;
|
|
39
|
+
case 'help':
|
|
40
|
+
default:
|
|
41
|
+
showHelp();
|
|
42
|
+
break;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
async function handleStart(serviceManager, service) {
|
|
46
|
+
helpers.printHeader('Starting Services');
|
|
47
|
+
switch (service) {
|
|
48
|
+
case 'mongo':
|
|
49
|
+
case 'mongodb':
|
|
50
|
+
await serviceManager.startMongoDB();
|
|
51
|
+
break;
|
|
52
|
+
case 'minio':
|
|
53
|
+
case 's3':
|
|
54
|
+
await serviceManager.startMinIO();
|
|
55
|
+
break;
|
|
56
|
+
case 'all':
|
|
57
|
+
case '':
|
|
58
|
+
await serviceManager.startMongoDB();
|
|
59
|
+
console.log();
|
|
60
|
+
await serviceManager.startMinIO();
|
|
61
|
+
break;
|
|
62
|
+
default:
|
|
63
|
+
logger.log('error', `Unknown service: ${service}`);
|
|
64
|
+
logger.log('note', 'Use: mongo, s3, or all');
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
async function handleStop(serviceManager, service) {
|
|
69
|
+
helpers.printHeader('Stopping Services');
|
|
70
|
+
switch (service) {
|
|
71
|
+
case 'mongo':
|
|
72
|
+
case 'mongodb':
|
|
73
|
+
await serviceManager.stopMongoDB();
|
|
74
|
+
break;
|
|
75
|
+
case 'minio':
|
|
76
|
+
case 's3':
|
|
77
|
+
await serviceManager.stopMinIO();
|
|
78
|
+
break;
|
|
79
|
+
case 'all':
|
|
80
|
+
case '':
|
|
81
|
+
await serviceManager.stopMongoDB();
|
|
82
|
+
console.log();
|
|
83
|
+
await serviceManager.stopMinIO();
|
|
84
|
+
break;
|
|
85
|
+
default:
|
|
86
|
+
logger.log('error', `Unknown service: ${service}`);
|
|
87
|
+
logger.log('note', 'Use: mongo, s3, or all');
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
async function handleRestart(serviceManager, service) {
|
|
92
|
+
helpers.printHeader('Restarting Services');
|
|
93
|
+
switch (service) {
|
|
94
|
+
case 'mongo':
|
|
95
|
+
case 'mongodb':
|
|
96
|
+
await serviceManager.stopMongoDB();
|
|
97
|
+
await plugins.smartdelay.delayFor(2000);
|
|
98
|
+
await serviceManager.startMongoDB();
|
|
99
|
+
break;
|
|
100
|
+
case 'minio':
|
|
101
|
+
case 's3':
|
|
102
|
+
await serviceManager.stopMinIO();
|
|
103
|
+
await plugins.smartdelay.delayFor(2000);
|
|
104
|
+
await serviceManager.startMinIO();
|
|
105
|
+
break;
|
|
106
|
+
case 'all':
|
|
107
|
+
case '':
|
|
108
|
+
await serviceManager.stopMongoDB();
|
|
109
|
+
await serviceManager.stopMinIO();
|
|
110
|
+
await plugins.smartdelay.delayFor(2000);
|
|
111
|
+
await serviceManager.startMongoDB();
|
|
112
|
+
console.log();
|
|
113
|
+
await serviceManager.startMinIO();
|
|
114
|
+
break;
|
|
115
|
+
default:
|
|
116
|
+
logger.log('error', `Unknown service: ${service}`);
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
async function handleRemove(serviceManager) {
|
|
121
|
+
helpers.printHeader('Removing Containers');
|
|
122
|
+
logger.log('note', '⚠️ This will remove containers but preserve data');
|
|
123
|
+
const shouldContinue = await plugins.smartinteract.SmartInteract.getCliConfirmation('Continue?', false);
|
|
124
|
+
if (shouldContinue) {
|
|
125
|
+
await serviceManager.removeContainers();
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
logger.log('note', 'Cancelled');
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
async function handleClean(serviceManager) {
|
|
132
|
+
helpers.printHeader('Clean All');
|
|
133
|
+
logger.log('error', '⚠️ WARNING: This will remove all containers and data!');
|
|
134
|
+
logger.log('error', 'This action cannot be undone!');
|
|
135
|
+
const smartinteraction = new plugins.smartinteract.SmartInteract();
|
|
136
|
+
const confirmAnswer = await smartinteraction.askQuestion({
|
|
137
|
+
name: 'confirm',
|
|
138
|
+
type: 'input',
|
|
139
|
+
message: 'Type "yes" to confirm:',
|
|
140
|
+
default: 'no'
|
|
141
|
+
});
|
|
142
|
+
if (confirmAnswer.value === 'yes') {
|
|
143
|
+
await serviceManager.removeContainers();
|
|
144
|
+
console.log();
|
|
145
|
+
await serviceManager.cleanData();
|
|
146
|
+
logger.log('ok', 'All cleaned ✓');
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
logger.log('note', 'Cancelled');
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
function showHelp() {
|
|
153
|
+
helpers.printHeader('GitZone Services Manager');
|
|
154
|
+
logger.log('ok', 'Usage: gitzone services [command] [options]');
|
|
155
|
+
console.log();
|
|
156
|
+
logger.log('note', 'Commands:');
|
|
157
|
+
logger.log('info', ' start [service] Start services (mongo|s3|all)');
|
|
158
|
+
logger.log('info', ' stop [service] Stop services (mongo|s3|all)');
|
|
159
|
+
logger.log('info', ' restart [service] Restart services (mongo|s3|all)');
|
|
160
|
+
logger.log('info', ' status Show service status');
|
|
161
|
+
logger.log('info', ' config Show current configuration');
|
|
162
|
+
logger.log('info', ' compass Show MongoDB Compass connection string');
|
|
163
|
+
logger.log('info', ' logs [service] Show logs (mongo|s3|all) [lines]');
|
|
164
|
+
logger.log('info', ' remove Remove all containers');
|
|
165
|
+
logger.log('info', ' clean Remove all containers and data ⚠️');
|
|
166
|
+
logger.log('info', ' help Show this help message');
|
|
167
|
+
console.log();
|
|
168
|
+
logger.log('note', 'Features:');
|
|
169
|
+
logger.log('info', ' • Auto-creates .nogit/env.json with smart defaults');
|
|
170
|
+
logger.log('info', ' • Random ports (20000-30000) to avoid conflicts');
|
|
171
|
+
logger.log('info', ' • Project-specific containers for multi-project support');
|
|
172
|
+
logger.log('info', ' • Preserves custom configuration values');
|
|
173
|
+
logger.log('info', ' • MongoDB Compass connection support');
|
|
174
|
+
console.log();
|
|
175
|
+
logger.log('note', 'Examples:');
|
|
176
|
+
logger.log('info', ' gitzone services start # Start all services');
|
|
177
|
+
logger.log('info', ' gitzone services start mongo # Start only MongoDB');
|
|
178
|
+
logger.log('info', ' gitzone services stop # Stop all services');
|
|
179
|
+
logger.log('info', ' gitzone services status # Check service status');
|
|
180
|
+
logger.log('info', ' gitzone services config # Show configuration');
|
|
181
|
+
logger.log('info', ' gitzone services compass # Get MongoDB Compass connection');
|
|
182
|
+
logger.log('info', ' gitzone services logs mongo 50 # Show last 50 lines of MongoDB logs');
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2Rfc2VydmljZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsT0FBWSxFQUFFLEVBQUU7SUFDeEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLEVBQUUsQ0FBQztJQUM1QyxNQUFNLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUU1QixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztJQUN2QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUV0QyxRQUFRLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLEtBQUssT0FBTztZQUNWLE1BQU0sV0FBVyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMzQyxNQUFNO1FBRVIsS0FBSyxNQUFNO1lBQ1QsTUFBTSxVQUFVLENBQUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzFDLE1BQU07UUFFUixLQUFLLFNBQVM7WUFDWixNQUFNLGFBQWEsQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDN0MsTUFBTTtRQUVSLEtBQUssUUFBUTtZQUNYLE1BQU0sY0FBYyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xDLE1BQU07UUFFUixLQUFLLFFBQVE7WUFDWCxNQUFNLGNBQWMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQyxNQUFN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
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from '../plugins.js';
|
|
2
|
+
import * as smartshell from '@push.rocks/smartshell';
|
|
3
|
+
import * as smartfile from '@push.rocks/smartfile';
|
|
4
|
+
import * as smartinteract from '@push.rocks/smartinteract';
|
|
5
|
+
import * as smartnetwork from '@push.rocks/smartnetwork';
|
|
6
|
+
import * as smartdelay from '@push.rocks/smartdelay';
|
|
7
|
+
export { smartshell, smartfile, smartinteract, smartnetwork, smartdelay };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from '../plugins.js';
|
|
2
|
+
import * as smartshell from '@push.rocks/smartshell';
|
|
3
|
+
import * as smartfile from '@push.rocks/smartfile';
|
|
4
|
+
import * as smartinteract from '@push.rocks/smartinteract';
|
|
5
|
+
import * as smartnetwork from '@push.rocks/smartnetwork';
|
|
6
|
+
import * as smartdelay from '@push.rocks/smartdelay';
|
|
7
|
+
export { smartshell, smartfile, smartinteract, smartnetwork, smartdelay };
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90cy9tb2Rfc2VydmljZXMvbW9kLnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFFOUIsT0FBTyxLQUFLLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEtBQUssU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxhQUFhLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxLQUFLLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEtBQUssVUFBVSxNQUFNLHdCQUF3QixDQUFDO0FBRXJELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLENBQUMifQ==
|
package/dist_ts/plugins.d.ts
CHANGED
|
@@ -7,4 +7,9 @@ import * as smartcli from '@push.rocks/smartcli';
|
|
|
7
7
|
import * as smartpath from '@push.rocks/smartpath';
|
|
8
8
|
import * as smartpromise from '@push.rocks/smartpromise';
|
|
9
9
|
import * as smartupdate from '@push.rocks/smartupdate';
|
|
10
|
-
|
|
10
|
+
import * as smartshell from '@push.rocks/smartshell';
|
|
11
|
+
import * as smartnetwork from '@push.rocks/smartnetwork';
|
|
12
|
+
import * as smartfile from '@push.rocks/smartfile';
|
|
13
|
+
import * as smartinteract from '@push.rocks/smartinteract';
|
|
14
|
+
import * as smartdelay from '@push.rocks/smartdelay';
|
|
15
|
+
export { smartlog, smartlogDestinationLocal, npmextra, path, projectinfo, smartcli, smartpath, smartpromise, smartupdate, smartshell, smartnetwork, smartfile, smartinteract, smartdelay, };
|
package/dist_ts/plugins.js
CHANGED
|
@@ -7,5 +7,10 @@ import * as smartcli from '@push.rocks/smartcli';
|
|
|
7
7
|
import * as smartpath from '@push.rocks/smartpath';
|
|
8
8
|
import * as smartpromise from '@push.rocks/smartpromise';
|
|
9
9
|
import * as smartupdate from '@push.rocks/smartupdate';
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
import * as smartshell from '@push.rocks/smartshell';
|
|
11
|
+
import * as smartnetwork from '@push.rocks/smartnetwork';
|
|
12
|
+
import * as smartfile from '@push.rocks/smartfile';
|
|
13
|
+
import * as smartinteract from '@push.rocks/smartinteract';
|
|
14
|
+
import * as smartdelay from '@push.rocks/smartdelay';
|
|
15
|
+
export { smartlog, smartlogDestinationLocal, npmextra, path, projectinfo, smartcli, smartpath, smartpromise, smartupdate, smartshell, smartnetwork, smartfile, smartinteract, smartdelay, };
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssd0JBQXdCLE1BQU0sd0NBQXdDLENBQUM7QUFDbkYsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEtBQUssV0FBVyxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sS0FBSyxRQUFRLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssWUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxXQUFXLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxLQUFLLFVBQVUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEtBQUssWUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxTQUFTLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLGFBQWEsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEtBQUssVUFBVSxNQUFNLHdCQUF3QixDQUFDO0FBRXJELE9BQU8sRUFDTCxRQUFRLEVBQ1Isd0JBQXdCLEVBQ3hCLFFBQVEsRUFDUixJQUFJLEVBQ0osV0FBVyxFQUNYLFFBQVEsRUFDUixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFNBQVMsRUFDVCxhQUFhLEVBQ2IsVUFBVSxHQUNYLENBQUMifQ==
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@git.zone/cli",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.17.2",
|
|
5
5
|
"description": "A comprehensive CLI tool for enhancing and managing local development workflows with gitzone utilities, focusing on project setup, version control, code formatting, and template management.",
|
|
6
6
|
"main": "dist_ts/index.ts",
|
|
7
7
|
"typings": "dist_ts/index.d.ts",
|
|
@@ -42,6 +42,11 @@
|
|
|
42
42
|
"@git.zone/tsbuild": "^2.3.2",
|
|
43
43
|
"@git.zone/tsrun": "^1.3.3",
|
|
44
44
|
"@git.zone/tstest": "^1.0.96",
|
|
45
|
+
"@push.rocks/smartdelay": "^3.0.5",
|
|
46
|
+
"@push.rocks/smartfile": "^11.2.0",
|
|
47
|
+
"@push.rocks/smartinteract": "^2.0.16",
|
|
48
|
+
"@push.rocks/smartnetwork": "^4.1.2",
|
|
49
|
+
"@push.rocks/smartshell": "^3.2.3",
|
|
45
50
|
"@types/node": "^22.15.18"
|
|
46
51
|
},
|
|
47
52
|
"dependencies": {
|
|
@@ -55,11 +60,8 @@
|
|
|
55
60
|
"@push.rocks/projectinfo": "^5.0.2",
|
|
56
61
|
"@push.rocks/smartchok": "^1.0.34",
|
|
57
62
|
"@push.rocks/smartcli": "^4.0.11",
|
|
58
|
-
"@push.rocks/smartdelay": "^3.0.5",
|
|
59
63
|
"@push.rocks/smartdiff": "^1.0.3",
|
|
60
|
-
"@push.rocks/smartfile": "^11.2.0",
|
|
61
64
|
"@push.rocks/smartgulp": "^3.0.4",
|
|
62
|
-
"@push.rocks/smartinteract": "^2.0.15",
|
|
63
65
|
"@push.rocks/smartjson": "^5.0.20",
|
|
64
66
|
"@push.rocks/smartlegal": "^1.0.27",
|
|
65
67
|
"@push.rocks/smartlog": "^3.0.9",
|
|
@@ -71,7 +73,6 @@
|
|
|
71
73
|
"@push.rocks/smartpath": "^5.0.18",
|
|
72
74
|
"@push.rocks/smartpromise": "^4.2.3",
|
|
73
75
|
"@push.rocks/smartscaf": "^4.0.16",
|
|
74
|
-
"@push.rocks/smartshell": "^3.2.3",
|
|
75
76
|
"@push.rocks/smartstream": "^3.2.5",
|
|
76
77
|
"@push.rocks/smartunique": "^3.0.9",
|
|
77
78
|
"@push.rocks/smartupdate": "^2.0.6",
|
package/readme.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
## 🎯 What is gitzone?
|
|
9
9
|
|
|
10
|
-
gitzone is a powerful command-line interface that supercharges your development workflow with automated project management, intelligent code formatting,
|
|
10
|
+
gitzone is a powerful command-line interface that supercharges your development workflow with automated project management, intelligent code formatting, seamless version control, and development service orchestration. Whether you're bootstrapping a new TypeScript project, maintaining code quality, managing complex multi-repository setups, or spinning up local development databases, gitzone has got you covered.
|
|
11
11
|
|
|
12
12
|
## 🏃♂️ Quick Start
|
|
13
13
|
|
|
@@ -23,7 +23,7 @@ pnpm add -g @git.zone/cli
|
|
|
23
23
|
|
|
24
24
|
Once installed, you can use either `gitzone` or the shorter `gzone` command from anywhere in your terminal.
|
|
25
25
|
|
|
26
|
-
### Your First
|
|
26
|
+
### Your First Commands
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
29
|
# Create a new TypeScript npm package
|
|
@@ -32,12 +32,66 @@ gitzone template npm
|
|
|
32
32
|
# Format your entire codebase
|
|
33
33
|
gitzone format
|
|
34
34
|
|
|
35
|
+
# Start local MongoDB and MinIO services
|
|
36
|
+
gitzone services start
|
|
37
|
+
|
|
35
38
|
# Create a semantic commit
|
|
36
39
|
gitzone commit
|
|
37
40
|
```
|
|
38
41
|
|
|
39
42
|
## 🛠️ Core Features
|
|
40
43
|
|
|
44
|
+
### 🐳 Development Services Management (NEW!)
|
|
45
|
+
|
|
46
|
+
Effortlessly manage local MongoDB and MinIO (S3-compatible) services for your development environment:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
gitzone services [command]
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Available commands:**
|
|
53
|
+
|
|
54
|
+
- **`start [service]`** - Start services (mongo|s3|all)
|
|
55
|
+
- **`stop [service]`** - Stop services (mongo|s3|all)
|
|
56
|
+
- **`restart [service]`** - Restart services
|
|
57
|
+
- **`status`** - Show current service status
|
|
58
|
+
- **`config`** - Display configuration details
|
|
59
|
+
- **`compass`** - Get MongoDB Compass connection string with network IP
|
|
60
|
+
- **`logs [service] [lines]`** - View service logs
|
|
61
|
+
- **`remove`** - Remove containers (preserves data)
|
|
62
|
+
- **`clean`** - Remove containers AND data (⚠️ destructive)
|
|
63
|
+
|
|
64
|
+
**Key features:**
|
|
65
|
+
|
|
66
|
+
- 🎲 **Smart port assignment** - Automatically assigns random ports (20000-30000) to avoid conflicts
|
|
67
|
+
- 📦 **Project isolation** - Each project gets its own containers with unique names
|
|
68
|
+
- 💾 **Data persistence** - Data stored in `.nogit/` directories survives container restarts
|
|
69
|
+
- 🔗 **MongoDB Compass support** - Instantly get connection strings for GUI access
|
|
70
|
+
- 🌐 **Network IP detection** - Automatically detects your local network IP for remote connections
|
|
71
|
+
- ⚙️ **Auto-configuration** - Creates `.nogit/env.json` with smart defaults
|
|
72
|
+
|
|
73
|
+
**Example workflow:**
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# Start all services for your project
|
|
77
|
+
gitzone services start
|
|
78
|
+
|
|
79
|
+
# Check what's running
|
|
80
|
+
gitzone services status
|
|
81
|
+
|
|
82
|
+
# Get MongoDB Compass connection string
|
|
83
|
+
gitzone services compass
|
|
84
|
+
# Output: mongodb://defaultadmin:defaultpass@192.168.1.100:27018/myproject?authSource=admin
|
|
85
|
+
|
|
86
|
+
# View MongoDB logs
|
|
87
|
+
gitzone services logs mongo 50
|
|
88
|
+
|
|
89
|
+
# Stop services when done
|
|
90
|
+
gitzone services stop
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
The services are configured via `.nogit/env.json` which is automatically created with secure defaults and random ports for each project.
|
|
94
|
+
|
|
41
95
|
### 📦 Project Templates
|
|
42
96
|
|
|
43
97
|
Instantly scaffold production-ready projects with best practices built-in:
|
|
@@ -279,43 +333,52 @@ Customize gitzone behavior through `npmextra.json`:
|
|
|
279
333
|
### For New Projects
|
|
280
334
|
|
|
281
335
|
1. Start with a template: `gitzone template npm`
|
|
282
|
-
2.
|
|
283
|
-
3.
|
|
284
|
-
4.
|
|
336
|
+
2. Set up local services: `gitzone services start`
|
|
337
|
+
3. Customize the generated structure
|
|
338
|
+
4. Run initial format: `gitzone format`
|
|
339
|
+
5. Set up CI/CD: `gitzone open ci`
|
|
285
340
|
|
|
286
341
|
### For Existing Projects
|
|
287
342
|
|
|
288
343
|
1. Initialize: `gitzone start`
|
|
289
344
|
2. Format codebase: `gitzone format --dry-run` (preview first!)
|
|
290
345
|
3. Apply formatting: `gitzone format --yes`
|
|
291
|
-
4.
|
|
346
|
+
4. Set up services: `gitzone services start`
|
|
347
|
+
5. Commit changes: `gitzone commit`
|
|
292
348
|
|
|
293
349
|
### For Teams
|
|
294
350
|
|
|
295
351
|
1. Document format preferences in `npmextra.json`
|
|
296
|
-
2.
|
|
297
|
-
3.
|
|
298
|
-
4.
|
|
352
|
+
2. Share `.nogit/env.json` template for consistent service setup
|
|
353
|
+
3. Use `--save-plan` for reviewable format changes
|
|
354
|
+
4. Enable rollback for safety
|
|
355
|
+
5. Standardize commit conventions
|
|
299
356
|
|
|
300
357
|
## 🎯 Common Workflows
|
|
301
358
|
|
|
302
|
-
###
|
|
359
|
+
### Full-Stack Development Cycle
|
|
303
360
|
|
|
304
361
|
```bash
|
|
305
362
|
# 1. Start fresh
|
|
306
363
|
gitzone start
|
|
307
364
|
|
|
308
|
-
# 2.
|
|
365
|
+
# 2. Spin up databases and services
|
|
366
|
+
gitzone services start
|
|
367
|
+
|
|
368
|
+
# 3. Make changes
|
|
309
369
|
# ... your development work ...
|
|
310
370
|
|
|
311
|
-
#
|
|
371
|
+
# 4. Check service logs if needed
|
|
372
|
+
gitzone services logs mongo
|
|
373
|
+
|
|
374
|
+
# 5. Format code
|
|
312
375
|
gitzone format
|
|
313
376
|
|
|
314
|
-
#
|
|
377
|
+
# 6. Commit with semantic versioning
|
|
315
378
|
gitzone commit
|
|
316
379
|
|
|
317
|
-
#
|
|
318
|
-
|
|
380
|
+
# 7. Stop services when done
|
|
381
|
+
gitzone services stop
|
|
319
382
|
```
|
|
320
383
|
|
|
321
384
|
### Multi-Repository Management
|
|
@@ -349,6 +412,25 @@ gitzone format --from-plan format-changes.json
|
|
|
349
412
|
gitzone format --rollback
|
|
350
413
|
```
|
|
351
414
|
|
|
415
|
+
### Database-Driven Development
|
|
416
|
+
|
|
417
|
+
```bash
|
|
418
|
+
# 1. Start MongoDB and MinIO
|
|
419
|
+
gitzone services start
|
|
420
|
+
|
|
421
|
+
# 2. Get connection string for your app
|
|
422
|
+
gitzone services config
|
|
423
|
+
|
|
424
|
+
# 3. Connect with MongoDB Compass
|
|
425
|
+
gitzone services compass
|
|
426
|
+
|
|
427
|
+
# 4. Monitor services
|
|
428
|
+
gitzone services status
|
|
429
|
+
|
|
430
|
+
# 5. Clean everything when done
|
|
431
|
+
gitzone services clean # ⚠️ Warning: deletes data
|
|
432
|
+
```
|
|
433
|
+
|
|
352
434
|
## 🔌 Integrations
|
|
353
435
|
|
|
354
436
|
### CI/CD Platforms
|
|
@@ -363,6 +445,9 @@ gitzone format --rollback
|
|
|
363
445
|
- **Prettier** - Code formatting
|
|
364
446
|
- **ESLint** - Linting (via format modules)
|
|
365
447
|
- **npm/pnpm** - Package management
|
|
448
|
+
- **MongoDB** - Local database service
|
|
449
|
+
- **MinIO** - S3-compatible object storage
|
|
450
|
+
- **MongoDB Compass** - Database GUI integration
|
|
366
451
|
|
|
367
452
|
### Version Control
|
|
368
453
|
|
|
@@ -377,6 +462,8 @@ gitzone format --rollback
|
|
|
377
462
|
3. **Leverage templates**: Start projects right with proven structures
|
|
378
463
|
4. **Enable caching**: Dramatically speeds up formatting operations
|
|
379
464
|
5. **Save format plans**: Review changes before applying in production
|
|
465
|
+
6. **Port management**: Let services auto-assign ports to avoid conflicts
|
|
466
|
+
7. **Use MongoDB Compass**: `gitzone services compass` for visual DB management
|
|
380
467
|
|
|
381
468
|
## 🐛 Troubleshooting
|
|
382
469
|
|
|
@@ -396,6 +483,18 @@ Ensure Docker daemon is running:
|
|
|
396
483
|
docker info
|
|
397
484
|
```
|
|
398
485
|
|
|
486
|
+
### Services Won't Start
|
|
487
|
+
|
|
488
|
+
Check for port conflicts:
|
|
489
|
+
|
|
490
|
+
```bash
|
|
491
|
+
# Services auto-assign ports, but you can check the config
|
|
492
|
+
cat .nogit/env.json
|
|
493
|
+
|
|
494
|
+
# Verify Docker is running
|
|
495
|
+
docker ps
|
|
496
|
+
```
|
|
497
|
+
|
|
399
498
|
### Template Creation Issues
|
|
400
499
|
|
|
401
500
|
Verify npm/pnpm is properly configured:
|
|
@@ -404,6 +503,12 @@ Verify npm/pnpm is properly configured:
|
|
|
404
503
|
npm config get registry
|
|
405
504
|
```
|
|
406
505
|
|
|
506
|
+
### MongoDB Connection Issues
|
|
507
|
+
|
|
508
|
+
- Ensure services are running: `gitzone services status`
|
|
509
|
+
- Check firewall settings for the assigned ports
|
|
510
|
+
- Use `gitzone services compass` for the correct connection string
|
|
511
|
+
|
|
407
512
|
## 📈 Performance
|
|
408
513
|
|
|
409
514
|
gitzone is optimized for speed:
|
|
@@ -412,6 +517,8 @@ gitzone is optimized for speed:
|
|
|
412
517
|
- **Smart caching** to avoid redundant work
|
|
413
518
|
- **Incremental updates** for meta repositories
|
|
414
519
|
- **Minimal dependencies** for fast installation
|
|
520
|
+
- **Isolated services** prevent resource conflicts
|
|
521
|
+
- **Auto port assignment** eliminates manual configuration
|
|
415
522
|
|
|
416
523
|
## License and Legal Information
|
|
417
524
|
|
|
@@ -430,4 +537,4 @@ Registered at District court Bremen HRB 35230 HB, Germany
|
|
|
430
537
|
|
|
431
538
|
For any legal inquiries or if you require further information, please contact us via email at hello@task.vc.
|
|
432
539
|
|
|
433
|
-
By using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.
|
|
540
|
+
By using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.
|