@phystack/cli 4.3.40-dev

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.
Files changed (192) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.md +24 -0
  3. package/bin/index.js +2 -0
  4. package/dist/commands/app/build-apps.js +66 -0
  5. package/dist/commands/app/build-apps.js.map +1 -0
  6. package/dist/commands/app/build-container-remote.js +171 -0
  7. package/dist/commands/app/build-container-remote.js.map +1 -0
  8. package/dist/commands/app/build-container.js +330 -0
  9. package/dist/commands/app/build-container.js.map +1 -0
  10. package/dist/commands/app/build.js +393 -0
  11. package/dist/commands/app/build.js.map +1 -0
  12. package/dist/commands/app/create.js +451 -0
  13. package/dist/commands/app/create.js.map +1 -0
  14. package/dist/commands/app/deploy.js +176 -0
  15. package/dist/commands/app/deploy.js.map +1 -0
  16. package/dist/commands/app/device-picker.js +150 -0
  17. package/dist/commands/app/device-picker.js.map +1 -0
  18. package/dist/commands/app/import.js +303 -0
  19. package/dist/commands/app/import.js.map +1 -0
  20. package/dist/commands/app/list.js +26 -0
  21. package/dist/commands/app/list.js.map +1 -0
  22. package/dist/commands/app/publish.js +327 -0
  23. package/dist/commands/app/publish.js.map +1 -0
  24. package/dist/commands/app/settings.js +129 -0
  25. package/dist/commands/app/settings.js.map +1 -0
  26. package/dist/commands/app/types.js +13 -0
  27. package/dist/commands/app/types.js.map +1 -0
  28. package/dist/commands/app/upload-description.js +139 -0
  29. package/dist/commands/app/upload-description.js.map +1 -0
  30. package/dist/commands/app/upload-settings.js +29 -0
  31. package/dist/commands/app/upload-settings.js.map +1 -0
  32. package/dist/commands/app/utils.js +86 -0
  33. package/dist/commands/app/utils.js.map +1 -0
  34. package/dist/commands/auth/login.js +111 -0
  35. package/dist/commands/auth/login.js.map +1 -0
  36. package/dist/commands/auth/logout.js +19 -0
  37. package/dist/commands/auth/logout.js.map +1 -0
  38. package/dist/commands/descriptor/create.js +143 -0
  39. package/dist/commands/descriptor/create.js.map +1 -0
  40. package/dist/commands/descriptor/index.js +36 -0
  41. package/dist/commands/descriptor/index.js.map +1 -0
  42. package/dist/commands/descriptor/publish.js +163 -0
  43. package/dist/commands/descriptor/publish.js.map +1 -0
  44. package/dist/commands/descriptor/show.js +68 -0
  45. package/dist/commands/descriptor/show.js.map +1 -0
  46. package/dist/commands/dev/develop.js +175 -0
  47. package/dist/commands/dev/develop.js.map +1 -0
  48. package/dist/commands/dev/forward.js +118 -0
  49. package/dist/commands/dev/forward.js.map +1 -0
  50. package/dist/commands/dev/index.js +66 -0
  51. package/dist/commands/dev/index.js.map +1 -0
  52. package/dist/commands/dev/list.js +96 -0
  53. package/dist/commands/dev/list.js.map +1 -0
  54. package/dist/commands/dev/screen-devtools.js +156 -0
  55. package/dist/commands/dev/screen-devtools.js.map +1 -0
  56. package/dist/commands/dev/select.js +118 -0
  57. package/dist/commands/dev/select.js.map +1 -0
  58. package/dist/commands/dev/shell.js +171 -0
  59. package/dist/commands/dev/shell.js.map +1 -0
  60. package/dist/commands/dev/vnc.js +75 -0
  61. package/dist/commands/dev/vnc.js.map +1 -0
  62. package/dist/commands/device/select.js +118 -0
  63. package/dist/commands/device/select.js.map +1 -0
  64. package/dist/commands/flash.js +1120 -0
  65. package/dist/commands/flash.js.map +1 -0
  66. package/dist/commands/inst/create.js +55 -0
  67. package/dist/commands/inst/create.js.map +1 -0
  68. package/dist/commands/inst/index.js +15 -0
  69. package/dist/commands/inst/index.js.map +1 -0
  70. package/dist/commands/inst/list.js +26 -0
  71. package/dist/commands/inst/list.js.map +1 -0
  72. package/dist/commands/legacydev/debug.js +11 -0
  73. package/dist/commands/legacydev/debug.js.map +1 -0
  74. package/dist/commands/legacydev/deploy.js +15 -0
  75. package/dist/commands/legacydev/deploy.js.map +1 -0
  76. package/dist/commands/legacydev/dumpTwin.js +27 -0
  77. package/dist/commands/legacydev/dumpTwin.js.map +1 -0
  78. package/dist/commands/legacydev/forward.js +104 -0
  79. package/dist/commands/legacydev/forward.js.map +1 -0
  80. package/dist/commands/legacydev/index.js +188 -0
  81. package/dist/commands/legacydev/index.js.map +1 -0
  82. package/dist/commands/legacydev/invoke.js +29 -0
  83. package/dist/commands/legacydev/invoke.js.map +1 -0
  84. package/dist/commands/legacydev/js.js +69 -0
  85. package/dist/commands/legacydev/js.js.map +1 -0
  86. package/dist/commands/legacydev/list.js +196 -0
  87. package/dist/commands/legacydev/list.js.map +1 -0
  88. package/dist/commands/legacydev/logs.js +60 -0
  89. package/dist/commands/legacydev/logs.js.map +1 -0
  90. package/dist/commands/legacydev/modules.js +50 -0
  91. package/dist/commands/legacydev/modules.js.map +1 -0
  92. package/dist/commands/legacydev/move.js +23 -0
  93. package/dist/commands/legacydev/move.js.map +1 -0
  94. package/dist/commands/legacydev/ota.js +88 -0
  95. package/dist/commands/legacydev/ota.js.map +1 -0
  96. package/dist/commands/legacydev/patchTwin.js +21 -0
  97. package/dist/commands/legacydev/patchTwin.js.map +1 -0
  98. package/dist/commands/legacydev/pin.js +23 -0
  99. package/dist/commands/legacydev/pin.js.map +1 -0
  100. package/dist/commands/legacydev/pub.js +25 -0
  101. package/dist/commands/legacydev/pub.js.map +1 -0
  102. package/dist/commands/legacydev/rdp.js +64 -0
  103. package/dist/commands/legacydev/rdp.js.map +1 -0
  104. package/dist/commands/legacydev/screen-devtools.js +142 -0
  105. package/dist/commands/legacydev/screen-devtools.js.map +1 -0
  106. package/dist/commands/legacydev/settingsShow.js +89 -0
  107. package/dist/commands/legacydev/settingsShow.js.map +1 -0
  108. package/dist/commands/legacydev/settingsUpdate.js +114 -0
  109. package/dist/commands/legacydev/settingsUpdate.js.map +1 -0
  110. package/dist/commands/legacydev/shell.js +167 -0
  111. package/dist/commands/legacydev/shell.js.map +1 -0
  112. package/dist/commands/legacydev/showTwin.js +9 -0
  113. package/dist/commands/legacydev/showTwin.js.map +1 -0
  114. package/dist/commands/legacydev/statusLog.js +56 -0
  115. package/dist/commands/legacydev/statusLog.js.map +1 -0
  116. package/dist/commands/legacydev/sub.js +39 -0
  117. package/dist/commands/legacydev/sub.js.map +1 -0
  118. package/dist/commands/legacydev/vnc.js +61 -0
  119. package/dist/commands/legacydev/vnc.js.map +1 -0
  120. package/dist/commands/tenant/index.js +21 -0
  121. package/dist/commands/tenant/index.js.map +1 -0
  122. package/dist/commands/tenant/list.js +14 -0
  123. package/dist/commands/tenant/list.js.map +1 -0
  124. package/dist/commands/tenant/select.js +87 -0
  125. package/dist/commands/tenant/select.js.map +1 -0
  126. package/dist/commands/vm/create.js +718 -0
  127. package/dist/commands/vm/create.js.map +1 -0
  128. package/dist/commands/vm/index.js +130 -0
  129. package/dist/commands/vm/index.js.map +1 -0
  130. package/dist/commands/vm/list.js +124 -0
  131. package/dist/commands/vm/list.js.map +1 -0
  132. package/dist/commands/vm/logs.js +66 -0
  133. package/dist/commands/vm/logs.js.map +1 -0
  134. package/dist/commands/vm/remove.js +180 -0
  135. package/dist/commands/vm/remove.js.map +1 -0
  136. package/dist/commands/vm/shell.js +400 -0
  137. package/dist/commands/vm/shell.js.map +1 -0
  138. package/dist/commands/vm/start.js +861 -0
  139. package/dist/commands/vm/start.js.map +1 -0
  140. package/dist/commands/vm/stop.js +232 -0
  141. package/dist/commands/vm/stop.js.map +1 -0
  142. package/dist/index.js +158 -0
  143. package/dist/index.js.map +1 -0
  144. package/dist/services/admin-api/admin-api.types.js +3 -0
  145. package/dist/services/admin-api/admin-api.types.js.map +1 -0
  146. package/dist/services/admin-api/device-modules.admin-api.service.js +58 -0
  147. package/dist/services/admin-api/device-modules.admin-api.service.js.map +1 -0
  148. package/dist/services/admin-api/devices-admin-api.service.js +213 -0
  149. package/dist/services/admin-api/devices-admin-api.service.js.map +1 -0
  150. package/dist/services/admin-api/gridapps-admin-api.service.js +59 -0
  151. package/dist/services/admin-api/gridapps-admin-api.service.js.map +1 -0
  152. package/dist/services/admin-api/index.js +157 -0
  153. package/dist/services/admin-api/index.js.map +1 -0
  154. package/dist/services/admin-api/installations-admin-api.service.js +29 -0
  155. package/dist/services/admin-api/installations-admin-api.service.js.map +1 -0
  156. package/dist/services/admin-api/organizations-admin-api.service.js +53 -0
  157. package/dist/services/admin-api/organizations-admin-api.service.js.map +1 -0
  158. package/dist/services/auth/device-grant-auth.service.js +224 -0
  159. package/dist/services/auth/device-grant-auth.service.js.map +1 -0
  160. package/dist/services/phyhub/index.js +200 -0
  161. package/dist/services/phyhub/index.js.map +1 -0
  162. package/dist/services/phyhub/phyhub.types.js +3 -0
  163. package/dist/services/phyhub/phyhub.types.js.map +1 -0
  164. package/dist/utils/device-fetcher.js +92 -0
  165. package/dist/utils/device-fetcher.js.map +1 -0
  166. package/dist/utils/devices.js +41 -0
  167. package/dist/utils/devices.js.map +1 -0
  168. package/dist/utils/docker-credentials.js +720 -0
  169. package/dist/utils/docker-credentials.js.map +1 -0
  170. package/dist/utils/emulated-device.js +91 -0
  171. package/dist/utils/emulated-device.js.map +1 -0
  172. package/dist/utils/index.js +180 -0
  173. package/dist/utils/index.js.map +1 -0
  174. package/dist/utils/modules.js +36 -0
  175. package/dist/utils/modules.js.map +1 -0
  176. package/dist/utils/org-selector.js +108 -0
  177. package/dist/utils/org-selector.js.map +1 -0
  178. package/dist/utils/proxy.js +31 -0
  179. package/dist/utils/proxy.js.map +1 -0
  180. package/dist/utils/registry-credentials.js +113 -0
  181. package/dist/utils/registry-credentials.js.map +1 -0
  182. package/dist/utils/statuses.js +124 -0
  183. package/dist/utils/statuses.js.map +1 -0
  184. package/dist/utils/templates.js +197 -0
  185. package/dist/utils/templates.js.map +1 -0
  186. package/dist/utils/tenant-storage.js +88 -0
  187. package/dist/utils/tenant-storage.js.map +1 -0
  188. package/dist/utils/vm.js +434 -0
  189. package/dist/utils/vm.js.map +1 -0
  190. package/dist/utils/with-spinner.js +20 -0
  191. package/dist/utils/with-spinner.js.map +1 -0
  192. package/package.json +103 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/commands/vm/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const commander_1 = require("commander");
40
+ const create_1 = __importDefault(require("./create"));
41
+ const list_1 = __importDefault(require("./list"));
42
+ const start_1 = __importDefault(require("./start"));
43
+ const stop_1 = __importDefault(require("./stop"));
44
+ const logs_1 = __importDefault(require("./logs"));
45
+ const remove_1 = __importDefault(require("./remove"));
46
+ const shell_1 = __importDefault(require("./shell"));
47
+ const utils_1 = require("../../utils");
48
+ // Simple restart command that just calls stop and then start
49
+ async function restartVm(name, options) {
50
+ console.log(`Restarting VM "${name}"...`);
51
+ // First stop the VM (force stop if specified)
52
+ try {
53
+ await (0, stop_1.default)(name, { force: options.force });
54
+ }
55
+ catch (error) {
56
+ if (options.force) {
57
+ console.log(`Failed to stop VM with force option, attempting to manually kill process...`);
58
+ // Manually force kill if needed
59
+ const { getVmPid } = await Promise.resolve().then(() => __importStar(require('../../utils/vm')));
60
+ const pid = getVmPid(name);
61
+ if (pid) {
62
+ try {
63
+ process.kill(pid, 'SIGKILL');
64
+ console.log(`Successfully force killed VM process (PID: ${pid})`);
65
+ }
66
+ catch (killError) {
67
+ console.warn(`Warning: Failed to force kill VM process: ${killError.message}`);
68
+ }
69
+ }
70
+ }
71
+ else {
72
+ throw error;
73
+ }
74
+ }
75
+ // Brief pause to ensure everything is cleaned up
76
+ await new Promise(resolve => setTimeout(resolve, 1000));
77
+ // Then start it with the same options
78
+ await (0, start_1.default)(name, options);
79
+ }
80
+ const vm = new commander_1.Command('vm').description('Virtual Machine management');
81
+ vm
82
+ .command('create [name]')
83
+ .description('Create a new PhyOS virtual machine')
84
+ .option('--phyos-version <version>', 'Select a specific PhyOS version for the VM (format: X.Y.Z, e.g., 5.0.127)')
85
+ .option('--arch <arch>', 'Architecture (arm64 or amd64)')
86
+ .option('--memory <memory>', 'Memory allocation in MB')
87
+ .option('--storage <storage>', 'Storage allocation in GB')
88
+ .option('--headless', 'Configure VM for headless operation (no display)')
89
+ .option('--count <count>', 'Number of VMs to create (default: 1)')
90
+ .action((0, utils_1.handleError)(create_1.default));
91
+ vm
92
+ .command('list')
93
+ .description('List installed virtual machines')
94
+ .action((0, utils_1.handleError)(list_1.default));
95
+ vm
96
+ .command('start <names...>')
97
+ .description('Start one or more virtual machines')
98
+ .option('--memory <memory>', 'Memory allocation in MB')
99
+ .option('--headless', 'Run VMs without display')
100
+ .action((0, utils_1.handleError)(start_1.default));
101
+ vm
102
+ .command('stop <names...>')
103
+ .description('Stop one or more running virtual machines')
104
+ .option('--force', 'Force stop if graceful shutdown fails')
105
+ .action((0, utils_1.handleError)(stop_1.default));
106
+ vm
107
+ .command('restart <name>')
108
+ .description('Restart a virtual machine')
109
+ .option('--memory <memory>', 'Memory allocation in MB')
110
+ .option('--headless', 'Run VM without display')
111
+ .option('--force', 'Force stop if graceful shutdown fails')
112
+ .action((0, utils_1.handleError)(restartVm));
113
+ vm
114
+ .command('logs <name>')
115
+ .alias('log')
116
+ .description('Display logs for a virtual machine')
117
+ .option('-f, --follow', 'Follow log output')
118
+ .action((0, utils_1.handleError)(logs_1.default));
119
+ vm
120
+ .command('shell <name>')
121
+ .description('Connect to the console of a running virtual machine')
122
+ .action((0, utils_1.handleError)(shell_1.default));
123
+ vm
124
+ .command('remove <names...>')
125
+ .alias('rm')
126
+ .description('Remove one or more virtual machines')
127
+ .option('--force', 'Force removal of running VMs')
128
+ .action((0, utils_1.handleError)(remove_1.default));
129
+ exports.default = vm;
130
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/vm/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = listVmsCommand;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const vm_1 = require("../../utils/vm");
9
+ const cli_table3_1 = __importDefault(require("cli-table3"));
10
+ const child_process_1 = require("child_process");
11
+ /**
12
+ * Command to list all installed VMs
13
+ */
14
+ async function listVmsCommand() {
15
+ const vmNames = (0, vm_1.listVms)();
16
+ if (vmNames.length === 0) {
17
+ console.log(chalk_1.default.yellow('No virtual machines found.'));
18
+ console.log(`To create a VM, run: ${chalk_1.default.green('phy vm create [name]')}`);
19
+ return;
20
+ }
21
+ // --- Pre-check for sudo requirement ---
22
+ const isRoot = process.getuid && process.getuid() === 0;
23
+ if (!isRoot) {
24
+ for (const vmName of vmNames) {
25
+ if ((0, vm_1.isPidFileRootOwned)(vmName)) {
26
+ // If any VM needs sudo and we are not root, relaunch the entire command
27
+ console.log(chalk_1.default.yellow(`VM "${vmName}" requires root privileges. Relaunching list command...`));
28
+ (0, vm_1.relaunchWithSudo)(process.argv.slice(2));
29
+ // relaunchWithSudo handles exiting the current process, but return to be safe
30
+ return;
31
+ }
32
+ }
33
+ }
34
+ // --- End Pre-check ---
35
+ // If we reach here, no sudo relaunch was needed or we are already root
36
+ const table = new cli_table3_1.default({
37
+ head: [
38
+ chalk_1.default.cyan('Name'),
39
+ chalk_1.default.cyan('Status'),
40
+ chalk_1.default.cyan('Version'),
41
+ chalk_1.default.cyan('Architecture'),
42
+ chalk_1.default.cyan('Memory'),
43
+ chalk_1.default.cyan('Serial'),
44
+ chalk_1.default.cyan('Created'),
45
+ chalk_1.default.cyan('Settings')
46
+ ],
47
+ style: {
48
+ head: [], // Disable default styling
49
+ border: []
50
+ }
51
+ });
52
+ for (const vmName of vmNames) {
53
+ try {
54
+ const config = (0, vm_1.readVmConfig)(vmName);
55
+ const settings = (0, vm_1.readVmSettings)(vmName);
56
+ // Check if VM is running, and if PID file is missing, try to create it
57
+ let status = (0, vm_1.isVmRunning)(vmName)
58
+ ? chalk_1.default.green('Running')
59
+ : chalk_1.default.gray('Stopped');
60
+ // If VM appears stopped but might actually be running (missing PID file), check process list
61
+ if (status === chalk_1.default.gray('Stopped')) {
62
+ try {
63
+ const qemuBin = config.arch === 'amd64' ? 'qemu-system-x86_64' : 'qemu-system-aarch64';
64
+ const psOutput = (0, child_process_1.execSync)(`ps aux | grep "${qemuBin}" | grep "${vmName}" | grep -v grep`, { encoding: 'utf8' });
65
+ if (psOutput.trim()) {
66
+ // VM is running but PID file is missing - try to create it
67
+ if ((0, vm_1.createPidFileForRunningVm)(vmName)) {
68
+ status = chalk_1.default.green('Running');
69
+ }
70
+ else {
71
+ // VM is running but we can't create PID file - show as running anyway
72
+ status = chalk_1.default.green('Running*');
73
+ }
74
+ }
75
+ }
76
+ catch (psError) {
77
+ // Ignore errors when checking process list
78
+ }
79
+ }
80
+ // Get memory from settings.json if available, otherwise from config.json
81
+ const memoryValue = settings.memory || config.memory || 2048;
82
+ // Format memory (MB to GB if applicable)
83
+ const memory = memoryValue >= 1024
84
+ ? `${(memoryValue / 1024).toFixed(1)} GB`
85
+ : `${memoryValue} MB`;
86
+ // Get serial number from settings.json
87
+ const serial = settings.serial
88
+ ? settings.serial.substring(0, 12) + '...' // truncate long serial numbers
89
+ : chalk_1.default.gray('N/A');
90
+ // Get architecture from settings or config
91
+ const arch = settings.arch || config.arch || chalk_1.default.gray('N/A');
92
+ // Get version from settings or config
93
+ const version = settings.version || config.version || chalk_1.default.gray('N/A');
94
+ // Format date
95
+ const created = settings.created || config.created
96
+ ? new Date(settings.created || config.created).toLocaleDateString()
97
+ : chalk_1.default.gray('N/A');
98
+ // Create a summary of all settings for display
99
+ const settingsSummary = Object.entries(settings)
100
+ .filter(([key]) => !['memory', 'serial', 'arch', 'version', 'created'].includes(key))
101
+ .map(([key, value]) => `${key}: ${value}`)
102
+ .join(', ');
103
+ table.push([
104
+ chalk_1.default.white(config.name),
105
+ status,
106
+ chalk_1.default.white(version),
107
+ chalk_1.default.white(arch),
108
+ chalk_1.default.white(memory),
109
+ chalk_1.default.white(serial),
110
+ chalk_1.default.white(created),
111
+ chalk_1.default.white(settingsSummary || chalk_1.default.gray('No additional settings'))
112
+ ]);
113
+ }
114
+ catch (error) {
115
+ // Skip invalid VMs
116
+ console.error(`Error reading VM "${vmName}": ${error.message}`);
117
+ }
118
+ }
119
+ console.log(table.toString());
120
+ console.log(`\nTo start a VM: ${chalk_1.default.green('phy vm start <name>')}`);
121
+ console.log(`To stop a VM: ${chalk_1.default.green('phy vm stop <name>')}`);
122
+ console.log(`To view VM logs: ${chalk_1.default.green('phy vm logs <name>')}`);
123
+ }
124
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/vm/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = logVm;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const child_process_1 = require("child_process");
10
+ const vm_1 = require("../../utils/vm");
11
+ /**
12
+ * View logs for a PhyOS VM
13
+ */
14
+ async function logVm(name, options) {
15
+ if (!name) {
16
+ throw new Error('VM name is required');
17
+ }
18
+ // Check if sudo is needed and relaunch if necessary
19
+ const isRoot = process.getuid && process.getuid() === 0;
20
+ if (!isRoot && (0, vm_1.isPidFileRootOwned)(name)) {
21
+ console.log(chalk_1.default.yellow(`VM "${name}" requires root privileges. Relaunching logs command...`));
22
+ (0, vm_1.relaunchWithSudo)(process.argv.slice(2));
23
+ return; // Exit current process
24
+ }
25
+ // Check if VM exists
26
+ if (!(0, vm_1.vmExists)(name)) {
27
+ throw new Error(`VM "${name}" not found`);
28
+ }
29
+ const logPath = (0, vm_1.getVmLogPath)(name);
30
+ // Check if log file exists
31
+ if (!fs_1.default.existsSync(logPath)) {
32
+ console.log(chalk_1.default.yellow(`No logs found for VM "${name}"`));
33
+ return;
34
+ }
35
+ // If follow option is enabled, tail -f the log file
36
+ if (options.follow) {
37
+ console.log(chalk_1.default.blue(`Following logs for VM "${name}" (Ctrl+C to exit)...`));
38
+ // Use tail -f to follow the log file
39
+ const tail = (0, child_process_1.spawn)('tail', ['-f', logPath], {
40
+ stdio: 'inherit'
41
+ });
42
+ // Handle process termination
43
+ process.on('SIGINT', () => {
44
+ tail.kill();
45
+ console.log('\nStopped following logs');
46
+ process.exit(0);
47
+ });
48
+ // Keep the process running
49
+ await new Promise(resolve => {
50
+ tail.on('close', resolve);
51
+ });
52
+ }
53
+ else {
54
+ // Read and display the log file
55
+ console.log(chalk_1.default.blue(`Logs for VM "${name}":`));
56
+ const logs = fs_1.default.readFileSync(logPath, 'utf8');
57
+ if (logs.trim() === '') {
58
+ console.log(chalk_1.default.yellow('Log file is empty'));
59
+ }
60
+ else {
61
+ console.log(logs);
62
+ console.log(chalk_1.default.blue(`\nTo follow logs in real-time: ${chalk_1.default.green('phy vm logs -f')} ${name}`));
63
+ }
64
+ }
65
+ }
66
+ //# sourceMappingURL=logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/commands/vm/logs.ts"],"names":[],"mappings":";;;;;AAaA,wBA2DC;AAxED,4CAAoB;AACpB,kDAA0B;AAC1B,iDAAsC;AACtC,uCAA8F;AAO9F;;GAEG;AACY,KAAK,UAAU,KAAK,CAAC,IAAY,EAAE,OAAmB;IACnE,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,oDAAoD;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,IAAI,IAAA,uBAAkB,EAAC,IAAI,CAAC,EAAE,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,OAAO,IAAI,yDAAyD,CAAC,CAAC,CAAC;QAChG,IAAA,qBAAgB,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,CAAC,uBAAuB;IACnC,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC,IAAA,aAAQ,EAAC,IAAI,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,aAAa,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,iBAAY,EAAC,IAAI,CAAC,CAAC;IAEnC,2BAA2B;IAC3B,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,yBAAyB,IAAI,GAAG,CAAC,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IAED,oDAAoD;IACpD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,IAAI,uBAAuB,CAAC,CAAC,CAAC;QAE/E,qCAAqC;QACrC,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE;YAC1C,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,6BAA6B;QAC7B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,2BAA2B;QAC3B,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAC1B,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,gCAAgC;QAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC,CAAC;QAElD,MAAM,IAAI,GAAG,YAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAE9C,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kCAAkC,eAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;QACrG,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = removeVm;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const readline_1 = __importDefault(require("readline"));
10
+ const rimraf_1 = require("rimraf");
11
+ const vm_1 = require("../../utils/vm");
12
+ const stop_1 = __importDefault(require("./stop"));
13
+ /**
14
+ * Prompts the user for confirmation
15
+ */
16
+ function promptForConfirmation(prompt) {
17
+ const rl = readline_1.default.createInterface({
18
+ input: process.stdin,
19
+ output: process.stdout
20
+ });
21
+ return new Promise(resolve => {
22
+ rl.question(prompt, (answer) => {
23
+ rl.close();
24
+ resolve(answer.toLowerCase() === 'yes');
25
+ });
26
+ });
27
+ }
28
+ /**
29
+ * Removes a single PhyOS VM (helper function)
30
+ */
31
+ async function removeSingleVm(name, options, skipConfirmation = false) {
32
+ // Read VM config and settings for information
33
+ let vmDescription = '';
34
+ try {
35
+ const config = (0, vm_1.readVmConfig)(name);
36
+ const settings = (0, vm_1.readVmSettings)(name);
37
+ const headlessInfo = settings.headless ? ' (headless)' : '';
38
+ vmDescription = `"${name}" (version ${config.version}, arch ${config.arch}, ${settings.memory}MB RAM${headlessInfo})`;
39
+ }
40
+ catch (error) {
41
+ vmDescription = `"${name}"`;
42
+ }
43
+ // Check if VM is running
44
+ const isRunning = (0, vm_1.isVmRunning)(name);
45
+ // Stop the VM if it's running
46
+ if (isRunning) {
47
+ if (options.force) {
48
+ console.log(chalk_1.default.yellow(`Force stopping running VM "${name}"...`));
49
+ const pid = (0, vm_1.getVmPid)(name);
50
+ if (pid) {
51
+ try {
52
+ // Use SIGKILL for immediate termination
53
+ process.kill(pid, 'SIGKILL');
54
+ console.log(chalk_1.default.green(`Successfully stopped VM process (PID: ${pid})`));
55
+ // Remove PID file
56
+ const pidPath = (0, vm_1.getVmPidPath)(name);
57
+ if (fs_1.default.existsSync(pidPath)) {
58
+ fs_1.default.unlinkSync(pidPath);
59
+ }
60
+ }
61
+ catch (error) {
62
+ console.warn(chalk_1.default.yellow(`Failed to stop VM process: ${error.message}`));
63
+ }
64
+ }
65
+ }
66
+ else {
67
+ // Use the regular stopVm function for a graceful shutdown
68
+ console.log(chalk_1.default.blue(`Stopping VM "${name}" before removal...`));
69
+ try {
70
+ await (0, stop_1.default)(name);
71
+ }
72
+ catch (error) {
73
+ console.warn(chalk_1.default.yellow(`Warning: Failed to gracefully stop VM: ${error.message}`));
74
+ console.warn(chalk_1.default.yellow(`Proceeding with removal anyway...`));
75
+ }
76
+ }
77
+ }
78
+ // Get the VM directory path
79
+ const vmDir = (0, vm_1.getVmDir)(name);
80
+ console.log(chalk_1.default.blue(`Removing VM ${vmDescription}...`));
81
+ // Check if the directory exists
82
+ if (!fs_1.default.existsSync(vmDir)) {
83
+ throw new Error(`VM directory for "${name}" not found`);
84
+ }
85
+ // Remove the directory recursively using rimrafSync
86
+ (0, rimraf_1.rimrafSync)(vmDir);
87
+ console.log(chalk_1.default.green(`VM "${name}" has been successfully removed.`));
88
+ }
89
+ /**
90
+ * Removes one or more PhyOS VMs
91
+ */
92
+ async function removeVm(names, options) {
93
+ // Handle single name (for backward compatibility)
94
+ const vmNames = Array.isArray(names) ? names : [names];
95
+ if (vmNames.length === 0) {
96
+ throw new Error('At least one VM name is required');
97
+ }
98
+ // Check which VMs exist and which don't
99
+ const existingVms = [];
100
+ const missingVms = [];
101
+ vmNames.forEach(name => {
102
+ if ((0, vm_1.vmExists)(name)) {
103
+ existingVms.push(name);
104
+ }
105
+ else {
106
+ missingVms.push(name);
107
+ }
108
+ });
109
+ // Report missing VMs
110
+ if (missingVms.length > 0) {
111
+ console.error(chalk_1.default.red(`❗️ The following VMs were not found: ${missingVms.join(', ')}`));
112
+ }
113
+ // If no existing VMs, exit
114
+ if (existingVms.length === 0) {
115
+ throw new Error('No VMs found to remove');
116
+ }
117
+ // Show summary of what will be removed
118
+ console.log(chalk_1.default.yellow(`About to remove ${existingVms.length} VM${existingVms.length > 1 ? 's' : ''}:`));
119
+ const runningVms = [];
120
+ existingVms.forEach(name => {
121
+ try {
122
+ const config = (0, vm_1.readVmConfig)(name);
123
+ const settings = (0, vm_1.readVmSettings)(name);
124
+ const isRunning = (0, vm_1.isVmRunning)(name);
125
+ if (isRunning) {
126
+ runningVms.push(name);
127
+ }
128
+ const headlessInfo = settings.headless ? ' (headless)' : '';
129
+ const runningInfo = isRunning ? ' [RUNNING]' : '';
130
+ console.log(chalk_1.default.yellow(` - "${name}" (version ${config.version}, arch ${config.arch}, ${settings.memory}MB RAM${headlessInfo})${runningInfo}`));
131
+ }
132
+ catch (error) {
133
+ const isRunning = (0, vm_1.isVmRunning)(name);
134
+ if (isRunning) {
135
+ runningVms.push(name);
136
+ }
137
+ const runningInfo = isRunning ? ' [RUNNING]' : '';
138
+ console.log(chalk_1.default.yellow(` - "${name}"${runningInfo}`));
139
+ }
140
+ });
141
+ if (runningVms.length > 0) {
142
+ console.log(chalk_1.default.yellow(`\n${runningVms.length} VM${runningVms.length > 1 ? 's are' : ' is'} currently running and will be stopped before removal.`));
143
+ }
144
+ // Get confirmation from user unless --force is used
145
+ if (!options.force) {
146
+ const confirmed = await promptForConfirmation(chalk_1.default.red(`Type 'yes' to confirm removal of ${existingVms.length} VM${existingVms.length > 1 ? 's' : ''}: `));
147
+ if (!confirmed) {
148
+ console.log(chalk_1.default.blue('Operation cancelled.'));
149
+ return;
150
+ }
151
+ }
152
+ // Remove each VM
153
+ const removedVms = [];
154
+ const failedVms = [];
155
+ for (const name of existingVms) {
156
+ try {
157
+ await removeSingleVm(name, options, true);
158
+ removedVms.push(name);
159
+ }
160
+ catch (error) {
161
+ console.error(chalk_1.default.red(`❗️ Failed to remove VM "${name}": ${error.message}`));
162
+ failedVms.push({ name, error: error.message });
163
+ }
164
+ }
165
+ // Summary
166
+ if (removedVms.length > 0) {
167
+ console.log(chalk_1.default.green(`\n✅ Successfully removed ${removedVms.length} VM${removedVms.length > 1 ? 's' : ''}: ${removedVms.join(', ')}`));
168
+ }
169
+ if (failedVms.length > 0) {
170
+ console.log(chalk_1.default.red(`\n❌ Failed to remove ${failedVms.length} VM${failedVms.length > 1 ? 's' : ''}: ${failedVms.map(f => f.name).join(', ')}`));
171
+ }
172
+ if (missingVms.length > 0) {
173
+ console.log(chalk_1.default.yellow(`\n⚠️ VMs not found: ${missingVms.join(', ')}`));
174
+ }
175
+ // Throw error if any operations failed
176
+ if (failedVms.length > 0 || missingVms.length > 0) {
177
+ throw new Error(`Some VM removal operations failed or VMs were not found`);
178
+ }
179
+ }
180
+ //# sourceMappingURL=remove.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../src/commands/vm/remove.ts"],"names":[],"mappings":"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"}