@signageos/cli 2.5.0 → 2.6.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/Applet/Generate/appletGenerateCommand.js +1 -1
  2. package/dist/CustomScript/customScriptFacade.d.ts +5 -5
  3. package/dist/CustomScript/customScriptFacade.js +5 -4
  4. package/dist/Plugin/Generate/pluginGenerateCommand.d.ts +7 -0
  5. package/dist/Plugin/Generate/pluginGenerateCommand.js +38 -0
  6. package/dist/Plugin/Generate/pluginGenerateFacade.d.ts +12 -0
  7. package/dist/Plugin/Generate/pluginGenerateFacade.js +106 -0
  8. package/dist/Plugin/Upload/pluginUploadCommand.d.ts +25 -0
  9. package/dist/Plugin/Upload/pluginUploadCommand.js +70 -0
  10. package/dist/Plugin/pluginCommand.d.ts +27 -0
  11. package/dist/Plugin/pluginCommand.js +26 -0
  12. package/dist/Plugin/pluginFacade.d.ts +62 -0
  13. package/dist/Plugin/pluginFacade.js +251 -0
  14. package/dist/Runner/Generate/runnerGenerateCommand.d.ts +7 -0
  15. package/dist/Runner/Generate/runnerGenerateCommand.js +38 -0
  16. package/dist/Runner/Generate/runnerGenerateFacade.d.ts +12 -0
  17. package/dist/Runner/Generate/runnerGenerateFacade.js +107 -0
  18. package/dist/Runner/Upload/runnerUploadCommand.d.ts +25 -0
  19. package/dist/Runner/Upload/runnerUploadCommand.js +72 -0
  20. package/dist/Runner/runnerCommand.d.ts +27 -0
  21. package/dist/Runner/runnerCommand.js +26 -0
  22. package/dist/Runner/runnerFacede.d.ts +15 -0
  23. package/dist/Runner/runnerFacede.js +234 -0
  24. package/dist/index.js +3 -1
  25. package/docs/applet/index.md +10 -10
  26. package/docs/applet/test/index.md +4 -4
  27. package/docs/autocomplete/index.md +4 -4
  28. package/docs/custom-script/index.md +4 -4
  29. package/docs/device/index.md +6 -6
  30. package/docs/index.md +16 -14
  31. package/docs/organization/index.md +6 -6
  32. package/docs/plugin/generate/index.md +43 -0
  33. package/docs/plugin/index.md +72 -0
  34. package/docs/plugin/upload/index.md +50 -0
  35. package/docs/runner/generate/index.md +43 -0
  36. package/docs/runner/index.md +72 -0
  37. package/docs/runner/upload/index.md +50 -0
  38. package/docs/timing/index.md +2 -2
  39. package/package.json +2 -2
@@ -0,0 +1,234 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.ensureRunnerVersion = ensureRunnerVersion;
49
+ exports.uploadCode = uploadCode;
50
+ exports.loadSchemas = loadSchemas;
51
+ const path = __importStar(require("path"));
52
+ const os = __importStar(require("os"));
53
+ const fs = __importStar(require("fs-extra"));
54
+ const prompts_1 = __importDefault(require("prompts"));
55
+ const chalk_1 = __importDefault(require("chalk"));
56
+ const log_1 = require("@signageos/sdk/dist/Console/log");
57
+ const archive_1 = require("../Lib/archive");
58
+ const fileSystem_1 = require("../Lib/fileSystem");
59
+ const runtimeFileSystem_1 = require("@signageos/sdk/dist/Development/runtimeFileSystem");
60
+ const customScriptFacade_1 = require("../CustomScript/customScriptFacade");
61
+ const PLUGIN_BUILDS_DIRNAME = 'plugin_builds';
62
+ function ensureRunnerVersion(restApi, config, schema) {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ const runner = yield ensureRunner(restApi, config);
65
+ const runnerVersion = yield restApi.runner.version.get({ runnerUid: runner.uid, version: config.version });
66
+ if (runnerVersion) {
67
+ return runnerVersion;
68
+ }
69
+ const response = yield (0, prompts_1.default)({
70
+ type: 'confirm',
71
+ name: 'newVersion',
72
+ message: `Do you want to create new runner version ${config.version}?`,
73
+ });
74
+ if (!response.newVersion) {
75
+ throw new Error('Runner version creation was canceled.');
76
+ }
77
+ (0, log_1.log)('info', chalk_1.default.yellow(`Creating Runner version ${config.version}`));
78
+ return yield restApi.runner.version.create({
79
+ runnerUid: runner.uid,
80
+ version: config.version,
81
+ description: config.description,
82
+ input: schema.input,
83
+ output: schema.output,
84
+ telemetry: schema.telemetry,
85
+ configDefinition: config.configDefinition,
86
+ });
87
+ });
88
+ }
89
+ function ensureRunner(restApi, config) {
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ if (config.uid) {
92
+ const runner = yield restApi.runner.get(config.uid);
93
+ if (runner) {
94
+ yield restApi.runner.update(runner.uid, {
95
+ name: config.name,
96
+ title: config.name,
97
+ description: config.description,
98
+ });
99
+ return runner;
100
+ }
101
+ throw new Error(`Runner with uid "${config.uid}" not found`);
102
+ }
103
+ const response = yield (0, prompts_1.default)({
104
+ type: 'confirm',
105
+ name: 'create',
106
+ message: `Runner "${config.name}" does not exist. Do you want to create it?`,
107
+ });
108
+ if (!response.create) {
109
+ throw new Error('Runner upload was canceled.');
110
+ }
111
+ (0, log_1.log)('info', chalk_1.default.yellow(`Creating Runner "${config.name}"`));
112
+ const createdRunner = yield restApi.runner.create({
113
+ name: config.name,
114
+ title: config.name,
115
+ description: config.description,
116
+ });
117
+ // TODO ask for permission or read from CLI arg
118
+ (0, log_1.log)('info', chalk_1.default.yellow('Adding Runner uid to the config file'));
119
+ yield (0, customScriptFacade_1.addToConfigFile)(process.cwd(), { uid: createdRunner.uid });
120
+ return createdRunner;
121
+ });
122
+ }
123
+ function uploadCode(_a) {
124
+ return __awaiter(this, arguments, void 0, function* ({ restApi, workDir, platform, config, runnerVersion, }) {
125
+ const { mainFile, runtime } = config;
126
+ const codeArchive = yield generateRunnerPlatformCodeArchive(workDir, config, runnerVersion, platform);
127
+ const runnerVersionPlatform = yield restApi.runner.version.platform.get({
128
+ runnerUid: runnerVersion.runnerUid,
129
+ version: runnerVersion.version,
130
+ platform,
131
+ });
132
+ if ((runnerVersionPlatform === null || runnerVersionPlatform === void 0 ? void 0 : runnerVersionPlatform.md5Checksum) === codeArchive.md5Checksum) {
133
+ (0, log_1.log)('info', chalk_1.default.yellow(`Skipping upload for ${platform} - no changes detected`));
134
+ return;
135
+ }
136
+ try {
137
+ (0, log_1.log)('info', chalk_1.default.yellow(`Uploading files for ${platform}`));
138
+ yield uploadCodeArchive({
139
+ restApi,
140
+ runnerVersion,
141
+ platform,
142
+ codeArchive,
143
+ });
144
+ yield restApi.runner.version.platform.update({
145
+ runnerUid: runnerVersion.runnerUid,
146
+ version: runnerVersion.version,
147
+ platform,
148
+ mainFile,
149
+ runtime,
150
+ md5Checksum: codeArchive.md5Checksum,
151
+ });
152
+ }
153
+ finally {
154
+ yield codeArchive.delete();
155
+ }
156
+ });
157
+ }
158
+ function uploadCodeArchive(_a) {
159
+ return __awaiter(this, arguments, void 0, function* ({ restApi, runnerVersion, platform, codeArchive, }) {
160
+ const filePath = codeArchive.filePath;
161
+ const fileSize = (yield fs.stat(filePath)).size;
162
+ const fileStream = fs.createReadStream(filePath);
163
+ yield restApi.runner.version.platform.archive.upload({
164
+ runnerUid: runnerVersion.runnerUid,
165
+ version: runnerVersion.version,
166
+ platform,
167
+ md5Checksum: codeArchive.md5Checksum,
168
+ size: fileSize,
169
+ stream: fileStream,
170
+ });
171
+ });
172
+ }
173
+ /**
174
+ * Generates an archive with the code for a particular platform, defined by the provided configuration.
175
+ *
176
+ * Archive is generated and stored in the runtime /tmp/signageos/runner_scripts_builds/:uid/:version/ directory.
177
+ * After archive isn't needed anymore, it should be deleted using the delete method.
178
+ */
179
+ function generateRunnerPlatformCodeArchive(workDir, config, runnerVersion, platform) {
180
+ return __awaiter(this, void 0, void 0, function* () {
181
+ const buildsDir = yield ensureBuildsDirectory(runnerVersion);
182
+ const archiveFileName = `${platform}.zip`;
183
+ const archiveFilePath = path.join(buildsDir, archiveFileName);
184
+ yield (0, archive_1.generateZip)(workDir, config.rootDir, archiveFilePath);
185
+ const md5Checksum = yield (0, fileSystem_1.getFileMD5Checksum)(archiveFilePath);
186
+ return {
187
+ filePath: archiveFilePath,
188
+ md5Checksum,
189
+ delete() {
190
+ return __awaiter(this, void 0, void 0, function* () {
191
+ yield fs.unlink(archiveFilePath);
192
+ });
193
+ },
194
+ };
195
+ });
196
+ }
197
+ /**
198
+ * Ensure that the runtime directory for runner script version exists in the current working directory.
199
+ *
200
+ * This directory is used to store temporary files generated by the CLI.
201
+ */
202
+ function ensureBuildsDirectory(runnerVersion) {
203
+ return __awaiter(this, void 0, void 0, function* () {
204
+ const runtimeDir = yield ensureRuntimeDir();
205
+ const buildsDir = path.join(runtimeDir, runnerVersion.runnerUid, runnerVersion.version);
206
+ yield fs.ensureDir(buildsDir);
207
+ return buildsDir;
208
+ });
209
+ }
210
+ /**
211
+ * Ensure that the runtime directory exists in the current working directory.
212
+ *
213
+ * This directory is used to store temporary files generated by the CLI.
214
+ */
215
+ function ensureRuntimeDir() {
216
+ return __awaiter(this, void 0, void 0, function* () {
217
+ const runtimeDir = path.join(os.tmpdir(), runtimeFileSystem_1.RUNTIME_DIRNAME, PLUGIN_BUILDS_DIRNAME);
218
+ yield fs.ensureDir(runtimeDir);
219
+ return runtimeDir;
220
+ });
221
+ }
222
+ function loadSchemas(workDir) {
223
+ return __awaiter(this, void 0, void 0, function* () {
224
+ const filePath = getConfigFilePath(workDir);
225
+ if (!(yield fs.pathExists(filePath))) {
226
+ throw new Error(`Config file schema.json not found`);
227
+ }
228
+ const fileContent = fs.readFileSync(filePath, 'utf-8');
229
+ return JSON.parse(fileContent);
230
+ });
231
+ }
232
+ function getConfigFilePath(workDir) {
233
+ return path.join(workDir, 'schema.json');
234
+ }
package/dist/index.js CHANGED
@@ -20,6 +20,8 @@ const deviceCommand_1 = require("./Device/deviceCommand");
20
20
  const generalCommand_1 = require("./generalCommand");
21
21
  const commandDefinition_1 = require("./Command/commandDefinition");
22
22
  const customScriptCommand_1 = require("./CustomScript/customScriptCommand");
23
+ const pluginCommand_1 = require("./Plugin/pluginCommand");
24
+ const runnerCommand_1 = require("./Runner/runnerCommand");
23
25
  const autocompleteCommand_1 = require("./Command/Autocomplete/autocompleteCommand");
24
26
  /**
25
27
  * The root command for the signageOS CLI tool that provides comprehensive management
@@ -47,7 +49,7 @@ const index = (0, commandDefinition_1.createCommandDefinition)({
47
49
  name: 'sos',
48
50
  description: 'SignageOS CLI - The central command-line tool for deploying, managing, and debugging signageOS projects and devices',
49
51
  optionList: generalCommand_1.GENERAL_OPTION_LIST,
50
- commands: [appletCommand_1.applet, loginCommand_1.login, organizationCommand_1.organization, timingCommand_1.timing, firmwareCommand_1.firmware, deviceCommand_1.device, customScriptCommand_1.customScript, autocompleteCommand_1.autocomplete],
52
+ commands: [appletCommand_1.applet, loginCommand_1.login, organizationCommand_1.organization, timingCommand_1.timing, firmwareCommand_1.firmware, deviceCommand_1.device, customScriptCommand_1.customScript, pluginCommand_1.plugin, runnerCommand_1.runner, autocompleteCommand_1.autocomplete],
51
53
  run() {
52
54
  return __awaiter(this, void 0, void 0, function* () {
53
55
  throw new Error('Unknown command');
@@ -29,7 +29,7 @@ Generate new signageOS applet projects with boilerplate code
29
29
  sos applet generate [options]
30
30
  ```
31
31
 
32
- [→ See detailed documentation](generate/)
32
+ [→ See detailed documentation](/cli/applet/generate/)
33
33
 
34
34
  ### upload
35
35
 
@@ -39,7 +39,7 @@ Uploads current applet version
39
39
  sos applet upload [options]
40
40
  ```
41
41
 
42
- [→ See detailed documentation](upload/)
42
+ [→ See detailed documentation](/cli/applet/upload/)
43
43
 
44
44
  ### start
45
45
 
@@ -49,7 +49,7 @@ Start local applet development server with live preview
49
49
  sos applet start [options]
50
50
  ```
51
51
 
52
- [→ See detailed documentation](start/)
52
+ [→ See detailed documentation](/cli/applet/start/)
53
53
 
54
54
  ### test
55
55
 
@@ -59,7 +59,7 @@ Applet test management
59
59
  sos applet test <subcommand> [options]
60
60
  ```
61
61
 
62
- [→ See detailed documentation](test/)
62
+ [→ See detailed documentation](/cli/applet/test/)
63
63
 
64
64
  ### build
65
65
 
@@ -69,7 +69,7 @@ Build applet locally for production deployment.
69
69
  sos applet build [options]
70
70
  ```
71
71
 
72
- [→ See detailed documentation](build/)
72
+ [→ See detailed documentation](/cli/applet/build/)
73
73
 
74
74
 
75
75
  ## Examples
@@ -123,11 +123,11 @@ sos --profile production organization list
123
123
 
124
124
  ## Related Commands
125
125
 
126
- - [`sos applet generate`](generate/) - Generate new signageOS applet projects with boilerplate code
127
- - [`sos applet upload`](upload/) - Uploads current applet version
128
- - [`sos applet start`](start/) - Start local applet development server with live preview
129
- - [`sos applet test`](test/) - Applet test management
130
- - [`sos applet build`](build/) - Build applet locally for production deployment.
126
+ - [`sos applet generate`](/cli/applet/generate/) - Generate new signageOS applet projects with boilerplate code
127
+ - [`sos applet upload`](/cli/applet/upload/) - Uploads current applet version
128
+ - [`sos applet start`](/cli/applet/start/) - Start local applet development server with live preview
129
+ - [`sos applet test`](/cli/applet/test/) - Applet test management
130
+ - [`sos applet build`](/cli/applet/build/) - Build applet locally for production deployment.
131
131
 
132
132
  ## See Also
133
133
 
@@ -29,7 +29,7 @@ Upload applet tests to the signageOS platform
29
29
  sos applet test upload [options]
30
30
  ```
31
31
 
32
- [→ See detailed documentation](upload/)
32
+ [→ See detailed documentation](/cli/applet/test/upload/)
33
33
 
34
34
  ### run
35
35
 
@@ -39,7 +39,7 @@ Run applet tests on signageOS devices
39
39
  sos applet test run [options]
40
40
  ```
41
41
 
42
- [→ See detailed documentation](run/)
42
+ [→ See detailed documentation](/cli/applet/test/run/)
43
43
 
44
44
 
45
45
  ## Examples
@@ -87,5 +87,5 @@ sos --profile production organization list
87
87
 
88
88
  ## Related Commands
89
89
 
90
- - [`sos applet test upload`](upload/) - Upload applet tests to the signageOS platform
91
- - [`sos applet test run`](run/) - Run applet tests on signageOS devices
90
+ - [`sos applet test upload`](/cli/applet/test/upload/) - Upload applet tests to the signageOS platform
91
+ - [`sos applet test run`](/cli/applet/test/run/) - Run applet tests on signageOS devices
@@ -30,7 +30,7 @@ Install command auto-completion for bash/zsh shells
30
30
  sos autocomplete install [options]
31
31
  ```
32
32
 
33
- [→ See detailed documentation](install/)
33
+ [→ See detailed documentation](/cli/autocomplete/install/)
34
34
 
35
35
  ### uninstall
36
36
 
@@ -40,7 +40,7 @@ Uninstall command auto-completion for bash/zsh shells
40
40
  sos autocomplete uninstall [options]
41
41
  ```
42
42
 
43
- [→ See detailed documentation](uninstall/)
43
+ [→ See detailed documentation](/cli/autocomplete/uninstall/)
44
44
 
45
45
 
46
46
  ## Examples
@@ -88,5 +88,5 @@ sos --profile production organization list
88
88
 
89
89
  ## Related Commands
90
90
 
91
- - [`sos autocomplete install`](install/) - Install command auto-completion for bash/zsh shells
92
- - [`sos autocomplete uninstall`](uninstall/) - Uninstall command auto-completion for bash/zsh shells
91
+ - [`sos autocomplete install`](/cli/autocomplete/install/) - Install command auto-completion for bash/zsh shells
92
+ - [`sos autocomplete uninstall`](/cli/autocomplete/uninstall/) - Uninstall command auto-completion for bash/zsh shells
@@ -30,7 +30,7 @@ Upload custom script to the signageOS platform
30
30
  sos custom-script upload [options]
31
31
  ```
32
32
 
33
- [→ See detailed documentation](upload/)
33
+ [→ See detailed documentation](/cli/custom-script/upload/)
34
34
 
35
35
  ### generate
36
36
 
@@ -40,7 +40,7 @@ Generate a local repository for developing a Custom Script
40
40
  sos custom-script generate [options]
41
41
  ```
42
42
 
43
- [→ See detailed documentation](generate/)
43
+ [→ See detailed documentation](/cli/custom-script/generate/)
44
44
 
45
45
 
46
46
  ## Examples
@@ -88,8 +88,8 @@ sos --profile production organization list
88
88
 
89
89
  ## Related Commands
90
90
 
91
- - [`sos custom-script upload`](upload/) - Upload custom script to the signageOS platform
92
- - [`sos custom-script generate`](generate/) - Generate a local repository for developing a Custom Script
91
+ - [`sos custom-script upload`](/cli/custom-script/upload/) - Upload custom script to the signageOS platform
92
+ - [`sos custom-script generate`](/cli/custom-script/generate/) - Generate a local repository for developing a Custom Script
93
93
 
94
94
  ## See Also
95
95
 
@@ -29,7 +29,7 @@ Deploy applet to device
29
29
  sos device set-content [options]
30
30
  ```
31
31
 
32
- [→ See detailed documentation](set-content/)
32
+ [→ See detailed documentation](/cli/device/set-content/)
33
33
 
34
34
  ### power-action
35
35
 
@@ -39,7 +39,7 @@ Perform power action on device
39
39
  sos device power-action <actionType> [options]
40
40
  ```
41
41
 
42
- [→ See detailed documentation](power-action/)
42
+ [→ See detailed documentation](/cli/device/power-action/)
43
43
 
44
44
  ### connect
45
45
 
@@ -49,7 +49,7 @@ Connect device to local development server
49
49
  sos device connect [options]
50
50
  ```
51
51
 
52
- [→ See detailed documentation](connect/)
52
+ [→ See detailed documentation](/cli/device/connect/)
53
53
 
54
54
 
55
55
  ## Examples
@@ -100,6 +100,6 @@ sos --profile production organization list
100
100
 
101
101
  ## Related Commands
102
102
 
103
- - [`sos device set-content`](set-content/) - Deploy applet to device
104
- - [`sos device power-action`](power-action/) - Perform power action on device
105
- - [`sos device connect`](connect/) - Connect device to local development server
103
+ - [`sos device set-content`](/cli/device/set-content/) - Deploy applet to device
104
+ - [`sos device power-action`](/cli/device/power-action/) - Perform power action on device
105
+ - [`sos device connect`](/cli/device/connect/) - Connect device to local development server
package/docs/index.md CHANGED
@@ -81,7 +81,7 @@ Applet development and management operations
81
81
 
82
82
  **Available commands**: `sos applet generate`, `sos applet upload`, `sos applet start`, `sos applet test`, `sos applet build`
83
83
 
84
- [→ See detailed documentation](applet/)
84
+ [→ See detailed documentation](/cli/applet/)
85
85
 
86
86
  #### `sos custom-script`
87
87
 
@@ -89,7 +89,7 @@ Custom Script management
89
89
 
90
90
  **Available commands**: `sos custom-script upload`, `sos custom-script generate`
91
91
 
92
- [→ See detailed documentation](custom-script/)
92
+ [→ See detailed documentation](/cli/custom-script/)
93
93
 
94
94
  ### Authentication
95
95
 
@@ -97,7 +97,7 @@ Custom Script management
97
97
 
98
98
  Authenticate user with signageOS
99
99
 
100
- [→ See detailed documentation](login/)
100
+ [→ See detailed documentation](/cli/login/)
101
101
 
102
102
  ### Management
103
103
 
@@ -107,7 +107,7 @@ Organization management operations
107
107
 
108
108
  **Available commands**: `sos organization list`, `sos organization get`, `sos organization set-default`
109
109
 
110
- [→ See detailed documentation](organization/)
110
+ [→ See detailed documentation](/cli/organization/)
111
111
 
112
112
  #### `sos timing`
113
113
 
@@ -115,7 +115,7 @@ Timing management
115
115
 
116
116
  **Available commands**: `sos timing list`
117
117
 
118
- [→ See detailed documentation](timing/)
118
+ [→ See detailed documentation](/cli/timing/)
119
119
 
120
120
  #### `sos device`
121
121
 
@@ -123,7 +123,7 @@ Device management
123
123
 
124
124
  **Available commands**: `sos device set-content`, `sos device power-action`, `sos device connect`
125
125
 
126
- [→ See detailed documentation](device/)
126
+ [→ See detailed documentation](/cli/device/)
127
127
 
128
128
  ### Tools
129
129
 
@@ -133,7 +133,7 @@ CLI auto-completion management
133
133
 
134
134
  **Available commands**: `sos autocomplete install`, `sos autocomplete uninstall`
135
135
 
136
- [→ See detailed documentation](autocomplete/)
136
+ [→ See detailed documentation](/cli/autocomplete/)
137
137
 
138
138
 
139
139
  ## Examples
@@ -155,13 +155,15 @@ sos --api-url https://api.custom.signageos.io applet list
155
155
 
156
156
  ## Related Commands
157
157
 
158
- - [`sos applet`](applet/) - Applet development and management operations
159
- - [`sos login`](login/) - Authenticate user with signageOS
160
- - [`sos organization`](organization/) - Organization management operations
161
- - [`sos timing`](timing/) - Timing management
162
- - [`sos device`](device/) - Device management
163
- - [`sos custom-script`](custom-script/) - Custom Script management
164
- - [`sos autocomplete`](autocomplete/) - CLI auto-completion management
158
+ - [`sos applet`](/cli/applet/) - Applet development and management operations
159
+ - [`sos login`](/cli/login/) - Authenticate user with signageOS
160
+ - [`sos organization`](/cli/organization/) - Organization management operations
161
+ - [`sos timing`](/cli/timing/) - Timing management
162
+ - [`sos device`](/cli/device/) - Device management
163
+ - [`sos custom-script`](/cli/custom-script/) - Custom Script management
164
+ - [`sos plugin`](/cli/plugin/) - Plugin management
165
+ - [`sos runner`](/cli/runner/) - Runner management
166
+ - [`sos autocomplete`](/cli/autocomplete/) - CLI auto-completion management
165
167
 
166
168
  ## See Also
167
169
 
@@ -29,7 +29,7 @@ List organizations for logged account
29
29
  sos organization list [options]
30
30
  ```
31
31
 
32
- [→ See detailed documentation](list/)
32
+ [→ See detailed documentation](/cli/organization/list/)
33
33
 
34
34
  ### get
35
35
 
@@ -39,7 +39,7 @@ Get detailed information about a specific organization
39
39
  sos organization get [options]
40
40
  ```
41
41
 
42
- [→ See detailed documentation](get/)
42
+ [→ See detailed documentation](/cli/organization/get/)
43
43
 
44
44
  ### set-default
45
45
 
@@ -49,7 +49,7 @@ Set a default organization for CLI operations
49
49
  sos organization set-default [options]
50
50
  ```
51
51
 
52
- [→ See detailed documentation](set-default/)
52
+ [→ See detailed documentation](/cli/organization/set-default/)
53
53
 
54
54
 
55
55
  ## Examples
@@ -100,6 +100,6 @@ sos --profile production organization list
100
100
 
101
101
  ## Related Commands
102
102
 
103
- - [`sos organization list`](list/) - List organizations for logged account
104
- - [`sos organization get`](get/) - Get detailed information about a specific organization
105
- - [`sos organization set-default`](set-default/) - Set a default organization for CLI operations
103
+ - [`sos organization list`](/cli/organization/list/) - List organizations for logged account
104
+ - [`sos organization get`](/cli/organization/get/) - Get detailed information about a specific organization
105
+ - [`sos organization set-default`](/cli/organization/set-default/) - Set a default organization for CLI operations
@@ -0,0 +1,43 @@
1
+ ---
2
+ id: plugin-generate-index
3
+ title: generate
4
+ sidebar_position: 0
5
+ ---
6
+ # generate
7
+
8
+ Generates a local repository for developing a Plugin
9
+
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ sos plugin generate [options]
15
+ ```
16
+
17
+ ## Global Options
18
+
19
+ All commands support the following global options:
20
+
21
+ | Option | Alias | Description |
22
+ |--------|-------|-------------|
23
+ | `--help` | `-h` | Display help information for any command |
24
+ | `--version` | `-v` | Display the installed version of the CLI |
25
+ | `--api-url` | `-u` | Override the API URL for REST requests |
26
+ | `--profile` | | Use a specific profile from ~/.sosrc config |
27
+
28
+ ### Examples
29
+
30
+ ```bash
31
+ # Show version
32
+ sos --version
33
+
34
+ # Get help for any command
35
+ sos applet --help
36
+ sos applet upload --help
37
+
38
+ # Use custom API endpoint
39
+ sos --api-url https://api.example.com applet upload
40
+
41
+ # Use specific profile
42
+ sos --profile production organization list
43
+ ```
@@ -0,0 +1,72 @@
1
+ ---
2
+ id: plugin-index
3
+ title: plugin
4
+ sidebar_position: 0
5
+ ---
6
+ # plugin
7
+
8
+ Plugin management
9
+
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ sos plugin <subcommand> [options]
15
+ ```
16
+
17
+ ## Subcommands
18
+
19
+ ### generate
20
+
21
+ Generates a local repository for developing a Plugin
22
+
23
+ ```bash
24
+ sos plugin generate [options]
25
+ ```
26
+
27
+ [→ See detailed documentation](/cli/plugin/generate/)
28
+
29
+ ### upload
30
+
31
+ Uploads current plugin version
32
+
33
+ ```bash
34
+ sos plugin upload [options]
35
+ ```
36
+
37
+ [→ See detailed documentation](/cli/plugin/upload/)
38
+
39
+
40
+ ## Global Options
41
+
42
+ All commands support the following global options:
43
+
44
+ | Option | Alias | Description |
45
+ |--------|-------|-------------|
46
+ | `--help` | `-h` | Display help information for any command |
47
+ | `--version` | `-v` | Display the installed version of the CLI |
48
+ | `--api-url` | `-u` | Override the API URL for REST requests |
49
+ | `--profile` | | Use a specific profile from ~/.sosrc config |
50
+
51
+ ### Examples
52
+
53
+ ```bash
54
+ # Show version
55
+ sos --version
56
+
57
+ # Get help for any command
58
+ sos applet --help
59
+ sos applet upload --help
60
+
61
+ # Use custom API endpoint
62
+ sos --api-url https://api.example.com applet upload
63
+
64
+ # Use specific profile
65
+ sos --profile production organization list
66
+ ```
67
+
68
+
69
+ ## Related Commands
70
+
71
+ - [`sos plugin generate`](/cli/plugin/generate/) - Generates a local repository for developing a Plugin
72
+ - [`sos plugin upload`](/cli/plugin/upload/) - Uploads current plugin version