anycloud 0.0.8 → 0.0.10
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/binaries/anycloud-darwin-arm64 +0 -0
- package/binaries/anycloud-darwin-x64 +0 -0
- package/binaries/anycloud-linux-arm64 +0 -0
- package/binaries/anycloud-linux-x64 +0 -0
- package/dist/cli/commands/build.js +48 -0
- package/dist/cli/commands/build.js.map +1 -0
- package/dist/cli/commands/config/edit.js +35 -47
- package/dist/cli/commands/config/edit.js.map +1 -1
- package/dist/cli/commands/config/list.js +1 -0
- package/dist/cli/commands/config/list.js.map +1 -1
- package/dist/cli/commands/config/new.js +136 -145
- package/dist/cli/commands/config/new.js.map +1 -1
- package/dist/cli/commands/credentials/new.js +273 -101
- package/dist/cli/commands/credentials/new.js.map +1 -1
- package/dist/cli/commands/logs.js +1 -1
- package/dist/cli/commands/logs.js.map +1 -1
- package/dist/cli/commands/run.js +187 -33
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/status.js +5 -2
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/terminate.js +1 -1
- package/dist/cli/commands/terminate.js.map +1 -1
- package/dist/cli/commands/update.js +100 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/services/config.js +9 -5
- package/dist/cli/services/config.js.map +1 -1
- package/dist/cli/services/docker.js +149 -40
- package/dist/cli/services/docker.js.map +1 -1
- package/dist/cli/services/slurp/azure.js +168 -1
- package/dist/cli/services/slurp/azure.js.map +1 -1
- package/dist/cli/utils/output.js +7 -4
- package/dist/cli/utils/output.js.map +1 -1
- package/dist/daemon/server.js +0 -14
- package/dist/daemon/server.js.map +1 -1
- package/dist/shared/types.js.map +1 -1
- package/package.json +6 -2
package/dist/cli/commands/run.js
CHANGED
|
@@ -1,33 +1,100 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import prompts from 'prompts';
|
|
3
|
-
import { getGitHubToken
|
|
3
|
+
import { getGitHubToken } from '../services/auth.js';
|
|
4
4
|
import { resolveDeploymentProfile, loadDeploymentProfiles, } from '../services/config.js';
|
|
5
|
+
import { loadCredentials } from '../services/credentials.js';
|
|
5
6
|
import { createDeployment } from '../services/api-client.js';
|
|
6
7
|
import { printInfo, printError, createSpinner } from '../utils/output.js';
|
|
7
8
|
import { isNonInteractive, getConfigFromEnv, } from '../services/non-interactive.js';
|
|
8
9
|
import { DeploymentType } from '../../shared/types.js';
|
|
9
10
|
import { generateJobId } from '../../shared/id-generator.js';
|
|
10
11
|
import { parseEnvFile } from '../utils/env-parser.js';
|
|
12
|
+
import { createCredentialsInteractive } from './credentials/new.js';
|
|
13
|
+
import { createConfigInteractive } from './config/new.js';
|
|
11
14
|
import { resolveAndPushImage } from '../services/docker.js';
|
|
15
|
+
import { getGitHubUsername } from '../services/auth.js';
|
|
12
16
|
import packageJson from '../../../package.json' with { type: 'json' };
|
|
17
|
+
/**
|
|
18
|
+
* List GitHub Container Registry packages for authenticated user
|
|
19
|
+
*/
|
|
20
|
+
async function listGitHubPackages(token) {
|
|
21
|
+
try {
|
|
22
|
+
// Get authenticated user
|
|
23
|
+
const userResponse = await fetch('https://api.github.com/user', {
|
|
24
|
+
headers: {
|
|
25
|
+
Authorization: `Bearer ${token}`,
|
|
26
|
+
Accept: 'application/vnd.github+json',
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
if (!userResponse.ok)
|
|
30
|
+
return [];
|
|
31
|
+
const user = (await userResponse.json());
|
|
32
|
+
// Get user's packages
|
|
33
|
+
const packagesResponse = await fetch(`https://api.github.com/user/packages?package_type=container`, {
|
|
34
|
+
headers: {
|
|
35
|
+
Authorization: `Bearer ${token}`,
|
|
36
|
+
Accept: 'application/vnd.github+json',
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
if (!packagesResponse.ok)
|
|
40
|
+
return [];
|
|
41
|
+
const packages = (await packagesResponse.json());
|
|
42
|
+
// For each package, get versions/tags
|
|
43
|
+
const images = [];
|
|
44
|
+
for (const pkg of packages.slice(0, 10)) {
|
|
45
|
+
// Limit to 10 packages
|
|
46
|
+
try {
|
|
47
|
+
const versionsResponse = await fetch(`https://api.github.com/user/packages/container/${pkg.name}/versions`, {
|
|
48
|
+
headers: {
|
|
49
|
+
Authorization: `Bearer ${token}`,
|
|
50
|
+
Accept: 'application/vnd.github+json',
|
|
51
|
+
},
|
|
52
|
+
});
|
|
53
|
+
if (versionsResponse.ok) {
|
|
54
|
+
const versions = (await versionsResponse.json());
|
|
55
|
+
// Get tags from first few versions
|
|
56
|
+
for (const version of versions.slice(0, 5)) {
|
|
57
|
+
const tags = version.metadata?.container?.tags || [];
|
|
58
|
+
for (const tag of tags.slice(0, 3)) {
|
|
59
|
+
const full = `ghcr.io/${user.login}/${pkg.name}:${tag}`;
|
|
60
|
+
images.push({
|
|
61
|
+
name: `ghcr.io/${user.login}/${pkg.name}`,
|
|
62
|
+
tag,
|
|
63
|
+
full,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
// Skip this package on error
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return images;
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return [];
|
|
77
|
+
}
|
|
78
|
+
}
|
|
13
79
|
export function createRunCommand() {
|
|
14
80
|
return new Command('run')
|
|
15
|
-
.description('🚀
|
|
16
|
-
.argument('[image]', 'Container image
|
|
81
|
+
.description('🚀 Deploy a container image')
|
|
82
|
+
.argument('[image]', 'Container image (e.g., ghcr.io/user/repo:latest)')
|
|
17
83
|
.option('-c, --config <name>', 'Config name from anycloud.json')
|
|
18
84
|
.option('-i, --id <id>', 'Job identifier')
|
|
19
85
|
.option('-e, --env <file>', 'Environment file (.env format)')
|
|
20
|
-
.option('-f, --force', 'Allow deployment with uncommitted changes')
|
|
21
86
|
.addHelpText('after', `
|
|
22
87
|
Examples:
|
|
23
|
-
$ anycloud run
|
|
24
|
-
$ anycloud run latest
|
|
25
|
-
$ anycloud run v1.0 --config prod
|
|
26
|
-
$ anycloud run ghcr.io/user/
|
|
27
|
-
|
|
88
|
+
$ anycloud run # Select from GHCR images
|
|
89
|
+
$ anycloud run ghcr.io/user/repo:latest # Deploy specific image
|
|
90
|
+
$ anycloud run ghcr.io/user/repo:v1.0 --config prod # Deploy with config
|
|
91
|
+
$ anycloud run ghcr.io/user/repo:latest --env .env # Deploy with env vars
|
|
92
|
+
|
|
93
|
+
Build first:
|
|
94
|
+
$ anycloud build # Build and push image
|
|
95
|
+
$ anycloud run ghcr.io/user/repo:latest --config prod
|
|
28
96
|
|
|
29
97
|
Output:
|
|
30
|
-
Creating job deployment for image: alpine:latest
|
|
31
98
|
Using config: my-app
|
|
32
99
|
✓ Job deployment created!
|
|
33
100
|
|
|
@@ -46,31 +113,124 @@ Output:
|
|
|
46
113
|
process.exit(1);
|
|
47
114
|
}
|
|
48
115
|
}
|
|
49
|
-
// If --config not provided and not in non-interactive mode,
|
|
116
|
+
// If --config not provided and not in non-interactive mode, check setup
|
|
50
117
|
if (!configName) {
|
|
118
|
+
// Check if credentials exist
|
|
119
|
+
const credentials = await loadCredentials();
|
|
120
|
+
const credNames = Object.keys(credentials);
|
|
121
|
+
if (credNames.length === 0) {
|
|
122
|
+
printInfo('No credentials found.');
|
|
123
|
+
console.log('');
|
|
124
|
+
const createCreds = await prompts({
|
|
125
|
+
type: 'confirm',
|
|
126
|
+
name: 'value',
|
|
127
|
+
message: 'Would you like to create credentials now?',
|
|
128
|
+
initial: true,
|
|
129
|
+
});
|
|
130
|
+
if (!createCreds.value) {
|
|
131
|
+
printInfo('Run "anycloud credentials new" to create credentials.');
|
|
132
|
+
process.exit(0);
|
|
133
|
+
}
|
|
134
|
+
console.log('');
|
|
135
|
+
await createCredentialsInteractive();
|
|
136
|
+
console.log('');
|
|
137
|
+
}
|
|
138
|
+
// Check if profiles exist
|
|
51
139
|
const profiles = await loadDeploymentProfiles();
|
|
52
140
|
const profileNames = Object.keys(profiles);
|
|
53
141
|
if (profileNames.length === 0) {
|
|
54
|
-
|
|
55
|
-
|
|
142
|
+
printInfo('No deployment profiles found.');
|
|
143
|
+
console.log('');
|
|
144
|
+
const createConfig = await prompts({
|
|
145
|
+
type: 'confirm',
|
|
146
|
+
name: 'value',
|
|
147
|
+
message: 'Would you like to create a config profile now?',
|
|
148
|
+
initial: true,
|
|
149
|
+
});
|
|
150
|
+
if (!createConfig.value) {
|
|
151
|
+
printInfo('Run "anycloud config new" to create a profile.');
|
|
152
|
+
process.exit(0);
|
|
153
|
+
}
|
|
154
|
+
console.log('');
|
|
155
|
+
configName = await createConfigInteractive();
|
|
156
|
+
console.log('');
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// Prompt for config selection
|
|
160
|
+
const selection = await prompts({
|
|
161
|
+
type: 'select',
|
|
162
|
+
name: 'profile',
|
|
163
|
+
message: 'Select config:',
|
|
164
|
+
choices: profileNames.map((name) => ({
|
|
165
|
+
title: name,
|
|
166
|
+
value: name,
|
|
167
|
+
description: `${profiles[name].length} config(s)`,
|
|
168
|
+
})),
|
|
169
|
+
});
|
|
170
|
+
if (!selection.profile) {
|
|
171
|
+
process.exit(0); // User cancelled
|
|
172
|
+
}
|
|
173
|
+
configName = selection.profile;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
printInfo(`Using config: ${configName}`);
|
|
177
|
+
// Get GitHub token early if we need to list images
|
|
178
|
+
const accessToken = await getGitHubToken();
|
|
179
|
+
// If no image provided, let user select from available images
|
|
180
|
+
if (!image) {
|
|
181
|
+
if (isNonInteractive()) {
|
|
182
|
+
printError('Non-interactive mode: Image required.\n' +
|
|
183
|
+
' Provide image as first argument.');
|
|
56
184
|
process.exit(1);
|
|
57
185
|
}
|
|
186
|
+
const spinner = createSpinner('Loading available images...').start();
|
|
187
|
+
// Load GitHub packages
|
|
188
|
+
const ghcrImages = await listGitHubPackages(accessToken);
|
|
189
|
+
spinner.stop();
|
|
190
|
+
// Dedupe images to show only most recent tag per image name
|
|
191
|
+
const seenGhcrImages = new Set();
|
|
192
|
+
const dedupedGhcrImages = ghcrImages.filter((img) => {
|
|
193
|
+
if (seenGhcrImages.has(img.name))
|
|
194
|
+
return false;
|
|
195
|
+
seenGhcrImages.add(img.name);
|
|
196
|
+
return true;
|
|
197
|
+
});
|
|
198
|
+
// Build choices for selection
|
|
199
|
+
const choices = [];
|
|
200
|
+
// Add existing GHCR images
|
|
201
|
+
for (const img of dedupedGhcrImages) {
|
|
202
|
+
choices.push({
|
|
203
|
+
title: img.full,
|
|
204
|
+
value: img.full,
|
|
205
|
+
description: 'GitHub Container Registry',
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
// Add option to build new image
|
|
209
|
+
choices.push({
|
|
210
|
+
title: 'Build and push a new image from local dir',
|
|
211
|
+
value: '__build__',
|
|
212
|
+
description: 'Build from Dockerfile in current directory',
|
|
213
|
+
});
|
|
214
|
+
console.log('');
|
|
58
215
|
const selection = await prompts({
|
|
59
216
|
type: 'select',
|
|
60
|
-
name: '
|
|
61
|
-
message: 'Select
|
|
62
|
-
choices
|
|
63
|
-
title: name,
|
|
64
|
-
value: name,
|
|
65
|
-
description: `${profiles[name].length} config(s)`,
|
|
66
|
-
})),
|
|
217
|
+
name: 'image',
|
|
218
|
+
message: 'Select image to deploy:',
|
|
219
|
+
choices,
|
|
67
220
|
});
|
|
68
|
-
if (!selection.
|
|
69
|
-
process.exit(0);
|
|
221
|
+
if (!selection.image) {
|
|
222
|
+
process.exit(0);
|
|
223
|
+
}
|
|
224
|
+
if (selection.image === '__build__') {
|
|
225
|
+
// Build and push new image
|
|
226
|
+
const githubUsername = await getGitHubUsername(accessToken);
|
|
227
|
+
console.log('');
|
|
228
|
+
image = await resolveAndPushImage(undefined, accessToken, githubUsername);
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
image = selection.image;
|
|
70
232
|
}
|
|
71
|
-
configName = selection.profile;
|
|
72
233
|
}
|
|
73
|
-
printInfo(`Using config: ${configName}`);
|
|
74
234
|
// Parse environment variables from file if provided
|
|
75
235
|
let envVars;
|
|
76
236
|
if (options.env) {
|
|
@@ -89,21 +249,15 @@ Output:
|
|
|
89
249
|
process.exit(1);
|
|
90
250
|
}
|
|
91
251
|
}
|
|
92
|
-
// Get GitHub token and username
|
|
93
|
-
const accessToken = await getGitHubToken();
|
|
94
|
-
const githubUsername = await getGitHubUsername(accessToken);
|
|
95
|
-
// Resolve and push image (builds if needed)
|
|
96
|
-
console.log('');
|
|
97
|
-
const finalImage = await resolveAndPushImage(image, accessToken, githubUsername, options.force);
|
|
98
252
|
console.log('');
|
|
99
|
-
printInfo(`
|
|
253
|
+
printInfo(`Deploying image: ${image}`);
|
|
100
254
|
// Resolve deployment profile and credentials
|
|
101
255
|
const cloudConfigs = await resolveDeploymentProfile(configName);
|
|
102
256
|
// Generate job ID if not provided
|
|
103
|
-
const jobId = options.
|
|
257
|
+
const jobId = options.id || generateJobId();
|
|
104
258
|
// Create deployment with hardcoded 'job' type
|
|
105
259
|
const spinner = createSpinner('Creating job deployment...').start();
|
|
106
|
-
const response = await createDeployment(
|
|
260
|
+
const response = await createDeployment(image, cloudConfigs, accessToken, configName, DeploymentType.Job, packageJson.version, jobId, envVars);
|
|
107
261
|
spinner.succeed('Job deployment created!');
|
|
108
262
|
console.log('');
|
|
109
263
|
printInfo(`ID: ${response.id}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/cli/commands/run.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,7 +55,7 @@ Output:
|
|
|
55
55
|
loadingSpinner.stop();
|
|
56
56
|
if (deployments.length === 0) {
|
|
57
57
|
printError('No deployments found.');
|
|
58
|
-
printInfo('Create a deployment first using: anycloud run --config <config-name>');
|
|
58
|
+
printInfo('Create a deployment first using: anycloud run <image> --config <config-name>');
|
|
59
59
|
process.exit(1);
|
|
60
60
|
}
|
|
61
61
|
// Prompt for deployment selection
|
|
@@ -94,7 +94,10 @@ Output:
|
|
|
94
94
|
response.vmStatuses.forEach((vm, index) => {
|
|
95
95
|
const healthIcon = vm.healthy ? '✓' : '✗';
|
|
96
96
|
const healthText = vm.healthy ? 'healthy' : 'unhealthy';
|
|
97
|
-
|
|
97
|
+
const rcloneInfo = vm.rclone
|
|
98
|
+
? ` | rclone: ${vm.rclone.active ? 'running' : 'stopped'}`
|
|
99
|
+
: '';
|
|
100
|
+
console.log(` ${healthIcon} VM ${index + 1} (${vm.ip}): ${healthText}${rcloneInfo}`);
|
|
98
101
|
});
|
|
99
102
|
console.log('');
|
|
100
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,mBAAmB,EACnB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,gBAAgB,EAChB,cAAc,GACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,WAAW,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEtE,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAC;SACzB,WAAW,CAAC,0BAA0B,CAAC;SACvC,QAAQ,CACP,MAAM,EACN,kEAAkE,CACnE;SACA,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;CAcL,CACI;SACA,MAAM,CAAC,KAAK,EAAE,EAAW,EAAE,EAAE;QAC5B,IAAI,CAAC;YACH,IAAI,YAAY,GAAG,EAAE,CAAC;YAEtB,oDAAoD;YACpD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,yDAAyD;gBACzD,IAAI,gBAAgB,EAAE,EAAE,CAAC;oBACvB,YAAY,GAAG,cAAc,CAAC,wBAAwB,CAAC,CAAC;oBACxD,IAAI,CAAC,YAAY,EAAE,CAAC;wBAClB,UAAU,CACR,iDAAiD;4BAC/C,+EAA+E,CAClF,CAAC;wBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,mBAAmB;oBACnB,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;oBAE3C,uDAAuD;oBACvD,MAAM,eAAe,GAAG,MAAM,4BAA4B,EAAE,CAAC;oBAE7D,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC9C,UAAU,CAAC,+CAA+C,CAAC,CAAC;wBAC5D,SAAS,CACP,uDAAuD,CACxD,CAAC;wBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBAED,uBAAuB;oBACvB,MAAM,cAAc,GAAG,aAAa,CAClC,wBAAwB,CACzB,CAAC,KAAK,EAAE,CAAC;oBACV,MAAM,WAAW,GAAG,MAAM,eAAe,CACvC,eAAe,EACf,WAAW,EACX,WAAW,CAAC,OAAO,CACpB,CAAC;oBACF,cAAc,CAAC,IAAI,EAAE,CAAC;oBAEtB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC7B,UAAU,CAAC,uBAAuB,CAAC,CAAC;wBACpC,SAAS,CACP,
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/cli/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,7 +53,7 @@ Output:
|
|
|
53
53
|
loadingSpinner.stop();
|
|
54
54
|
if (deployments.length === 0) {
|
|
55
55
|
printError('No deployments found.');
|
|
56
|
-
printInfo('Create a deployment first using: anycloud run --config <config-name>');
|
|
56
|
+
printInfo('Create a deployment first using: anycloud run <image> --config <config-name>');
|
|
57
57
|
process.exit(1);
|
|
58
58
|
}
|
|
59
59
|
// Prompt for deployment selection
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terminate.js","sourceRoot":"","sources":["../../../src/cli/commands/terminate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EACL,mBAAmB,EACnB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,GACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,WAAW,MAAM,uBAAuB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEtE,MAAM,UAAU,sBAAsB;IACpC,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC;SAC5B,WAAW,CAAC,2BAA2B,CAAC;SACxC,QAAQ,CACP,MAAM,EACN,kEAAkE,CACnE;SACA,MAAM,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;SAC3D,WAAW,CACV,OAAO,EACP;;;;;;;;;;CAUL,CACI;SACA,MAAM,CAAC,KAAK,EAAE,EAAW,EAAE,OAA6B,EAAE,EAAE;QAC3D,IAAI,CAAC;YACH,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,UAAU,GAAG,OAAO,EAAE,MAAM,CAAC;YAEjC,oDAAoD;YACpD,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,yDAAyD;gBACzD,IAAI,gBAAgB,EAAE,EAAE,CAAC;oBACvB,YAAY,GAAG,cAAc,CAAC,wBAAwB,CAAC,CAAC;oBACxD,IAAI,CAAC,YAAY,EAAE,CAAC;wBAClB,UAAU,CACR,iDAAiD;4BAC/C,+EAA+E,CAClF,CAAC;wBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,mBAAmB;oBACnB,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;oBAE3C,uDAAuD;oBACvD,MAAM,eAAe,GAAG,MAAM,4BAA4B,EAAE,CAAC;oBAE7D,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC9C,UAAU,CAAC,+CAA+C,CAAC,CAAC;wBAC5D,SAAS,CACP,uDAAuD,CACxD,CAAC;wBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAClB,CAAC;oBAED,uBAAuB;oBACvB,MAAM,cAAc,GAAG,aAAa,CAClC,wBAAwB,CACzB,CAAC,KAAK,EAAE,CAAC;oBACV,MAAM,WAAW,GAAG,MAAM,eAAe,CACvC,eAAe,EACf,WAAW,EACX,WAAW,CAAC,OAAO,CACpB,CAAC;oBACF,cAAc,CAAC,IAAI,EAAE,CAAC;oBAEtB,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC7B,UAAU,CAAC,uBAAuB,CAAC,CAAC;wBACpC,SAAS,CACP,
|
|
1
|
+
{"version":3,"file":"terminate.js","sourceRoot":"","sources":["../../../src/cli/commands/terminate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { createWriteStream } from 'fs';
|
|
3
|
+
import { chmod, rename, unlink } from 'fs/promises';
|
|
4
|
+
import { tmpdir } from 'os';
|
|
5
|
+
import { join } from 'path';
|
|
6
|
+
import axios from 'axios';
|
|
7
|
+
import { printInfo, printError, createSpinner } from '../utils/output.js';
|
|
8
|
+
import packageJson from '../../../package.json' with { type: 'json' };
|
|
9
|
+
function getPlatform() {
|
|
10
|
+
const arch = process.arch === 'x64' ? 'x64' : 'arm64';
|
|
11
|
+
return `${process.platform}-${arch}`;
|
|
12
|
+
}
|
|
13
|
+
async function getLatestVersion() {
|
|
14
|
+
const response = await axios.get('https://registry.npmjs.org/anycloud/latest');
|
|
15
|
+
return response.data.version;
|
|
16
|
+
}
|
|
17
|
+
async function downloadBinary(version, platform, destPath) {
|
|
18
|
+
const url = `https://unpkg.com/anycloud@${version}/binaries/anycloud-${platform}`;
|
|
19
|
+
const response = await axios({
|
|
20
|
+
method: 'get',
|
|
21
|
+
url,
|
|
22
|
+
responseType: 'stream',
|
|
23
|
+
});
|
|
24
|
+
const writer = createWriteStream(destPath);
|
|
25
|
+
response.data.pipe(writer);
|
|
26
|
+
return new Promise((resolve, reject) => {
|
|
27
|
+
writer.on('finish', resolve);
|
|
28
|
+
writer.on('error', reject);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
export function createUpdateCommand() {
|
|
32
|
+
return new Command('update')
|
|
33
|
+
.description('⬆️ Update anycloud CLI to the latest version')
|
|
34
|
+
.argument('[version]', 'Specific version to install (default: latest)')
|
|
35
|
+
.addHelpText('after', `
|
|
36
|
+
Examples:
|
|
37
|
+
$ anycloud update # Update to latest version
|
|
38
|
+
$ anycloud update 0.2.0 # Update to specific version
|
|
39
|
+
|
|
40
|
+
Output:
|
|
41
|
+
Current version: 0.0.8
|
|
42
|
+
Latest version: 0.1.0
|
|
43
|
+
Downloading anycloud 0.1.0 for darwin-arm64...
|
|
44
|
+
✓ Updated to version 0.1.0
|
|
45
|
+
`)
|
|
46
|
+
.action(async (targetVersion) => {
|
|
47
|
+
try {
|
|
48
|
+
const currentVersion = packageJson.version;
|
|
49
|
+
printInfo(`Current version: ${currentVersion}`);
|
|
50
|
+
// Get target version
|
|
51
|
+
const version = targetVersion || (await getLatestVersion());
|
|
52
|
+
printInfo(`Target version: ${version}`);
|
|
53
|
+
// Check if already on target version
|
|
54
|
+
if (currentVersion === version) {
|
|
55
|
+
printInfo('Already on the target version.');
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
// Detect platform
|
|
59
|
+
const platform = getPlatform();
|
|
60
|
+
// Download new binary
|
|
61
|
+
const spinner = createSpinner(`Downloading anycloud ${version} for ${platform}...`).start();
|
|
62
|
+
const tempPath = join(tmpdir(), `anycloud-${Date.now()}`);
|
|
63
|
+
await downloadBinary(version, platform, tempPath);
|
|
64
|
+
// Make executable
|
|
65
|
+
await chmod(tempPath, 0o755);
|
|
66
|
+
// Get current executable path
|
|
67
|
+
const execPath = process.execPath;
|
|
68
|
+
// Check if we're running from a standalone binary or node
|
|
69
|
+
const isStandaloneBinary = !execPath.includes('node');
|
|
70
|
+
if (!isStandaloneBinary) {
|
|
71
|
+
spinner.fail('Update command only works with standalone binary installations.');
|
|
72
|
+
printInfo('If you installed via npm, use: npm update -g anycloud');
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
// Replace current binary
|
|
76
|
+
try {
|
|
77
|
+
const backupPath = `${execPath}.backup`;
|
|
78
|
+
await rename(execPath, backupPath);
|
|
79
|
+
await rename(tempPath, execPath);
|
|
80
|
+
await unlink(backupPath).catch(() => { });
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
if (err.code === 'EACCES') {
|
|
84
|
+
spinner.fail('Permission denied. Try running with sudo:');
|
|
85
|
+
printInfo(` sudo anycloud update${targetVersion ? ` ${targetVersion}` : ''}`);
|
|
86
|
+
await unlink(tempPath).catch(() => { });
|
|
87
|
+
process.exit(1);
|
|
88
|
+
}
|
|
89
|
+
throw err;
|
|
90
|
+
}
|
|
91
|
+
spinner.succeed(`Updated to version ${version}`);
|
|
92
|
+
printInfo('Restart your terminal or run a new command to use the new version.');
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
printError(`Update failed: ${error.message}`);
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
import { createRunCommand } from './commands/run.js';
|
|
4
|
+
import { createBuildCommand } from './commands/build.js';
|
|
4
5
|
import { createListCommand } from './commands/list.js';
|
|
5
6
|
import { createStatusCommand } from './commands/status.js';
|
|
6
7
|
import { createLogsCommand } from './commands/logs.js';
|
|
7
8
|
import { createTerminateCommand } from './commands/terminate.js';
|
|
8
9
|
import { createUpgradeCommand } from './commands/upgrade.js';
|
|
10
|
+
import { createUpdateCommand } from './commands/update.js';
|
|
9
11
|
import { createCredentialsCommand } from './commands/credentials/index.js';
|
|
10
12
|
import { createConfigCommand } from './commands/config/index.js';
|
|
11
13
|
import { createLoginCommand } from './commands/login.js';
|
|
@@ -49,12 +51,14 @@ program
|
|
|
49
51
|
// Register commands
|
|
50
52
|
program.addCommand(createLoginCommand());
|
|
51
53
|
// program.addCommand(_createServeCommand()); // Not functional yet
|
|
54
|
+
program.addCommand(createBuildCommand());
|
|
52
55
|
program.addCommand(createRunCommand());
|
|
53
56
|
program.addCommand(createListCommand());
|
|
54
57
|
program.addCommand(createStatusCommand());
|
|
55
58
|
program.addCommand(createLogsCommand());
|
|
56
59
|
program.addCommand(createTerminateCommand());
|
|
57
60
|
program.addCommand(createUpgradeCommand());
|
|
61
|
+
program.addCommand(createUpdateCommand());
|
|
58
62
|
program.addCommand(createCredentialsCommand());
|
|
59
63
|
program.addCommand(createConfigCommand());
|
|
60
64
|
program.addCommand(_createDaemonCommand()); // Internal use only - hidden from help
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { readFile } from 'fs/promises';
|
|
1
|
+
import { readFile, writeFile } from 'fs/promises';
|
|
2
2
|
import { resolve } from 'path';
|
|
3
3
|
import { CONFIG_FILE } from '../config.js';
|
|
4
|
-
import { exitWithError } from '../utils/output.js';
|
|
4
|
+
import { exitWithError, printInfo } from '../utils/output.js';
|
|
5
5
|
import { loadCredentials, getCredentialsByName } from './credentials.js';
|
|
6
6
|
import { AWSCreds, GCPCreds, AzureCreds } from '../../shared/types.js';
|
|
7
7
|
/**
|
|
8
8
|
* Load deployment profiles from ./anycloud.json
|
|
9
|
+
* If the file doesn't exist, creates an empty one and returns empty profiles
|
|
9
10
|
*/
|
|
10
11
|
export async function loadDeploymentProfiles() {
|
|
11
12
|
const configPath = resolve(process.cwd(), CONFIG_FILE);
|
|
@@ -15,8 +16,11 @@ export async function loadDeploymentProfiles() {
|
|
|
15
16
|
}
|
|
16
17
|
catch (error) {
|
|
17
18
|
if (error.code === 'ENOENT') {
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
// Auto-create empty anycloud.json
|
|
20
|
+
const emptyProfiles = {};
|
|
21
|
+
await writeFile(configPath, JSON.stringify(emptyProfiles, null, 2), 'utf-8');
|
|
22
|
+
printInfo(`Created ${CONFIG_FILE} in ${process.cwd()}`);
|
|
23
|
+
return emptyProfiles;
|
|
20
24
|
}
|
|
21
25
|
exitWithError(`Failed to read config file: ${error.message}`);
|
|
22
26
|
}
|
|
@@ -74,7 +78,7 @@ function buildCloudConfig(profile, credentials) {
|
|
|
74
78
|
return {
|
|
75
79
|
cloudProvider: credentials.cloudProvider,
|
|
76
80
|
credentials: extractCredentials(credentials),
|
|
77
|
-
...profileFields, // Spread all profile fields (region, vmType,
|
|
81
|
+
...profileFields, // Spread all profile fields (region, vmType, minVmCount, maxVmCount, spot, bucketName, etc.)
|
|
78
82
|
};
|
|
79
83
|
}
|
|
80
84
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/services/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/cli/services/config.ts"],"names":[],"mappings":"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"}
|