@minecraft-docker/mcctl 1.6.14 → 1.6.16
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/CHANGELOG.md +20 -0
- package/README.md +19 -21
- package/dist/commands/backup.d.ts +1 -0
- package/dist/commands/backup.d.ts.map +1 -1
- package/dist/commands/backup.js +28 -2
- package/dist/commands/backup.js.map +1 -1
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/update.d.ts +13 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +117 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/index.js +19 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/update-checker.d.ts +23 -0
- package/dist/lib/update-checker.d.ts.map +1 -1
- package/dist/lib/update-checker.js +66 -5
- package/dist/lib/update-checker.js.map +1 -1
- package/package.json +7 -4
- package/scripts/backup.sh +569 -0
- package/scripts/create-server.sh +580 -0
- package/scripts/delete-server.sh +266 -0
- package/scripts/init.sh +390 -0
- package/scripts/lib/common.sh +248 -0
- package/scripts/lock.sh +448 -0
- package/scripts/logs.sh +283 -0
- package/scripts/mcctl.sh +543 -0
- package/scripts/migrate-nip-io.sh +258 -0
- package/scripts/player.sh +329 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { homedir } from 'os';
|
|
2
2
|
import { join } from 'path';
|
|
3
|
-
import { readFileSync, writeFileSync, existsSync } from 'fs';
|
|
3
|
+
import { readFileSync, writeFileSync, existsSync, unlinkSync } from 'fs';
|
|
4
4
|
import { colors } from '@minecraft-docker/shared';
|
|
5
5
|
const PACKAGE_NAME = '@minecraft-docker/mcctl';
|
|
6
6
|
const CACHE_FILE = join(homedir(), '.mcctl-update-check.json');
|
|
@@ -112,6 +112,68 @@ function printUpdateNotification(currentVersion, latestVersion) {
|
|
|
112
112
|
console.log(colors.yellow(bottomBorder));
|
|
113
113
|
console.log('');
|
|
114
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Check if cache should be invalidated
|
|
117
|
+
* Cache is invalid if:
|
|
118
|
+
* 1. Cache doesn't exist
|
|
119
|
+
* 2. Cache is older than CACHE_DURATION_MS (24 hours)
|
|
120
|
+
* 3. Cached version is older than current version (user upgraded)
|
|
121
|
+
*/
|
|
122
|
+
function isCacheValid(cache, currentVersion) {
|
|
123
|
+
if (!cache)
|
|
124
|
+
return false;
|
|
125
|
+
const now = Date.now();
|
|
126
|
+
const isExpired = (now - cache.lastCheck) >= CACHE_DURATION_MS;
|
|
127
|
+
if (isExpired)
|
|
128
|
+
return false;
|
|
129
|
+
// If cached version is older than current, invalidate cache
|
|
130
|
+
// This handles the case where user upgraded but cache still has old "latest" version
|
|
131
|
+
const cachedIsOlderThanCurrent = isNewerVersion(cache.latestVersion, currentVersion);
|
|
132
|
+
if (cachedIsOlderThanCurrent)
|
|
133
|
+
return false;
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Check for updates and print notification if available
|
|
138
|
+
*/
|
|
139
|
+
/**
|
|
140
|
+
* Get the current version (exported for update command)
|
|
141
|
+
*/
|
|
142
|
+
export function getInstalledVersion() {
|
|
143
|
+
return getCurrentVersion();
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Force fetch latest version from npm (ignores cache)
|
|
147
|
+
*/
|
|
148
|
+
export async function fetchLatestVersionForced() {
|
|
149
|
+
return fetchLatestVersion();
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Get cached latest version if available
|
|
153
|
+
*/
|
|
154
|
+
export function getCachedVersion() {
|
|
155
|
+
const cache = readCache();
|
|
156
|
+
return cache?.latestVersion ?? null;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Clear the update check cache
|
|
160
|
+
*/
|
|
161
|
+
export function clearCache() {
|
|
162
|
+
try {
|
|
163
|
+
if (existsSync(CACHE_FILE)) {
|
|
164
|
+
unlinkSync(CACHE_FILE);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
// Ignore errors
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Compare versions and return if update is available
|
|
173
|
+
*/
|
|
174
|
+
export function isUpdateAvailable(currentVersion, latestVersion) {
|
|
175
|
+
return isNewerVersion(currentVersion, latestVersion);
|
|
176
|
+
}
|
|
115
177
|
/**
|
|
116
178
|
* Check for updates and print notification if available
|
|
117
179
|
*/
|
|
@@ -119,9 +181,8 @@ export async function checkForUpdates() {
|
|
|
119
181
|
try {
|
|
120
182
|
const currentVersion = getCurrentVersion();
|
|
121
183
|
const cache = readCache();
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
if (cache && (now - cache.lastCheck) < CACHE_DURATION_MS) {
|
|
184
|
+
// Check if cache is valid
|
|
185
|
+
if (isCacheValid(cache, currentVersion)) {
|
|
125
186
|
// Use cached version
|
|
126
187
|
if (isNewerVersion(currentVersion, cache.latestVersion)) {
|
|
127
188
|
printUpdateNotification(currentVersion, cache.latestVersion);
|
|
@@ -133,7 +194,7 @@ export async function checkForUpdates() {
|
|
|
133
194
|
if (latestVersion) {
|
|
134
195
|
// Update cache
|
|
135
196
|
writeCache({
|
|
136
|
-
lastCheck: now,
|
|
197
|
+
lastCheck: Date.now(),
|
|
137
198
|
latestVersion,
|
|
138
199
|
});
|
|
139
200
|
// Check if update is available
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-checker.js","sourceRoot":"","sources":["../../src/lib/update-checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"update-checker.js","sourceRoot":"","sources":["../../src/lib/update-checker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@minecraft-docker/mcctl",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.16",
|
|
4
4
|
"description": "CLI tool for managing Docker Minecraft servers with mc-router",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"types": "dist/index.d.ts",
|
|
11
11
|
"files": [
|
|
12
12
|
"dist",
|
|
13
|
+
"scripts",
|
|
13
14
|
"templates",
|
|
14
15
|
"CHANGELOG.md"
|
|
15
16
|
],
|
|
@@ -24,7 +25,9 @@
|
|
|
24
25
|
"test": "find tests -name '*.test.ts' | xargs npx tsx --test",
|
|
25
26
|
"test:unit": "find tests/unit -name '*.test.ts' | xargs npx tsx --test",
|
|
26
27
|
"test:integration": "find tests/integration -name '*.test.ts' | xargs npx tsx --test",
|
|
27
|
-
"start": "node dist/index.js"
|
|
28
|
+
"start": "node dist/index.js",
|
|
29
|
+
"sync-scripts": "rm -rf scripts && cp -r ../../scripts . && rm -f scripts/.gitkeep",
|
|
30
|
+
"prepublishOnly": "npm run sync-scripts"
|
|
28
31
|
},
|
|
29
32
|
"keywords": [
|
|
30
33
|
"minecraft",
|
|
@@ -50,8 +53,8 @@
|
|
|
50
53
|
],
|
|
51
54
|
"dependencies": {
|
|
52
55
|
"@clack/prompts": "^0.8.0",
|
|
53
|
-
"@minecraft-docker/mod-source-modrinth": "^1.6.
|
|
54
|
-
"@minecraft-docker/shared": "^1.6.
|
|
56
|
+
"@minecraft-docker/mod-source-modrinth": "^1.6.16",
|
|
57
|
+
"@minecraft-docker/shared": "^1.6.16",
|
|
55
58
|
"commander": "^12.0.0",
|
|
56
59
|
"js-yaml": "^4.1.0",
|
|
57
60
|
"picocolors": "^1.1.0",
|