@rancher/shell 1.2.3 → 1.2.5

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 (62) hide show
  1. package/assets/translations/en-us.yaml +49 -18
  2. package/assets/translations/zh-hans.yaml +1 -0
  3. package/cloud-credential/__tests__/harvester.test.ts +18 -0
  4. package/cloud-credential/harvester.vue +9 -1
  5. package/components/AlertTable.vue +17 -7
  6. package/components/GrafanaDashboard.vue +6 -4
  7. package/components/nav/Header.vue +9 -5
  8. package/components/nav/TopLevelMenu.vue +1 -4
  9. package/config/product/explorer.js +11 -4
  10. package/config/settings.ts +9 -2
  11. package/config/types.js +1 -1
  12. package/config/uiplugins.js +2 -2
  13. package/detail/catalog.cattle.io.app.vue +17 -4
  14. package/edit/management.cattle.io.setting.vue +15 -2
  15. package/edit/provisioning.cattle.io.cluster/RegistryConfigs.vue +8 -2
  16. package/edit/provisioning.cattle.io.cluster/__tests__/RegistryConfigs.test.ts +61 -0
  17. package/edit/provisioning.cattle.io.cluster/__tests__/utils/cluster.ts +386 -0
  18. package/edit/provisioning.cattle.io.cluster/rke2.vue +73 -77
  19. package/edit/provisioning.cattle.io.cluster/tabs/AddOnAdditionalManifest.vue +45 -0
  20. package/edit/provisioning.cattle.io.cluster/tabs/AddOnConfig.vue +97 -0
  21. package/mixins/chart.js +6 -2
  22. package/models/catalog.cattle.io.app.js +112 -21
  23. package/models/management.cattle.io.cluster.js +18 -6
  24. package/package.json +1 -1
  25. package/pages/c/_cluster/apps/charts/install.vue +2 -1
  26. package/plugins/dashboard-store/actions.js +3 -2
  27. package/scripts/extension/bundle +1 -1
  28. package/scripts/publish-shell.sh +62 -55
  29. package/scripts/test-plugins-build.sh +111 -29
  30. package/scripts/typegen.sh +26 -23
  31. package/store/catalog.js +1 -1
  32. package/store/features.js +1 -0
  33. package/store/type-map.utils.ts +44 -0
  34. package/types/shell/index.d.ts +2 -0
  35. package/types/store/dashboard-store.types.ts +23 -0
  36. package/types/store/vuex.d.ts +9 -0
  37. package/utils/cluster.js +9 -0
  38. package/utils/v-sphere.ts +277 -0
  39. package/.DS_Store +0 -0
  40. package/creators/app/app.package.json +0 -13
  41. package/creators/app/files/.eslintignore +0 -18
  42. package/creators/app/files/.eslintrc.js +0 -173
  43. package/creators/app/files/.gitignore +0 -70
  44. package/creators/app/files/.vscode/settings.json +0 -22
  45. package/creators/app/files/babel.config.js +0 -1
  46. package/creators/app/files/tsconfig.json +0 -42
  47. package/creators/app/files/vue.config.js +0 -6
  48. package/creators/app/init +0 -101
  49. package/creators/app/package.json +0 -25
  50. package/creators/pkg/files/.github/workflows/build-extension-catalog.yml +0 -28
  51. package/creators/pkg/files/.github/workflows/build-extension-charts.yml +0 -26
  52. package/creators/pkg/files/babel.config.js +0 -1
  53. package/creators/pkg/files/index.ts +0 -14
  54. package/creators/pkg/files/tsconfig.json +0 -53
  55. package/creators/pkg/files/vue.config.js +0 -1
  56. package/creators/pkg/init +0 -254
  57. package/creators/pkg/package.json +0 -19
  58. package/creators/pkg/pkg.package.json +0 -21
  59. package/creators/pkg/vue-shim.ts +0 -4
  60. package/creators/update/init +0 -56
  61. package/creators/update/package.json +0 -20
  62. package/creators/update/upgrade +0 -56
package/creators/app/init DELETED
@@ -1,101 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- const path = require('path');
4
- const fs = require('fs-extra');
5
-
6
- const targets = {
7
- dev: 'NODE_ENV=dev ./node_modules/.bin/vue-cli-service serve',
8
- build: './node_modules/.bin/vue-cli-service build',
9
- clean: './node_modules/@rancher/shell/scripts/clean'
10
- };
11
-
12
- const files = [
13
- 'tsconfig.json',
14
- 'vue.config.js',
15
- '.gitignore',
16
- '.eslintignore',
17
- '.eslintrc.js',
18
- 'babel.config.js',
19
- '.vscode/settings.json'
20
- ];
21
-
22
- console.log('');
23
- console.log('Creating Skeleton Application');
24
-
25
- const args = process.argv;
26
- let appFolder = path.resolve('.');
27
-
28
- if (args.length === 3) {
29
- const name = args[2];
30
- const folder = path.resolve('.');
31
-
32
- appFolder = path.join(folder, name);
33
- console.log(` Creating application folder: ${ appFolder }`);
34
- fs.ensureDirSync(appFolder);
35
- }
36
-
37
- // Check that there is a package file
38
-
39
- let setName = false;
40
-
41
- if (!fs.existsSync(path.join(appFolder, './package.json'))) {
42
- console.log(' Adding package.json');
43
- fs.copySync(path.join(__dirname, 'app.package.json'), path.join(appFolder, 'package.json'));
44
- setName = true;
45
- }
46
-
47
- const rawdata = fs.readFileSync(path.join(appFolder, 'package.json'));
48
- const pkg = JSON.parse(rawdata);
49
-
50
- if (!pkg.scripts) {
51
- pkg.scripts = {};
52
- }
53
-
54
- if (setName) {
55
- const dirName = path.basename(appFolder);
56
-
57
- pkg.name = dirName;
58
- }
59
-
60
- Object.keys(targets).forEach((target) => {
61
- if (!pkg.scripts[target]) {
62
- pkg.scripts[target] = targets[target];
63
- console.log(` Adding script '${ target }' to package.json`);
64
- }
65
- });
66
-
67
- // Add dependencies
68
- // Use the same shell version as this app creator
69
-
70
- const creatorPkgData = fs.readFileSync(path.join(__dirname, 'package.json'));
71
- const creatorPkg = JSON.parse(creatorPkgData);
72
-
73
- pkg.dependencies['@rancher/shell'] = `^${ creatorPkg.version }`;
74
-
75
- // Rest of dependencies are in the _pkgs property of package.json - copy then across
76
- if (creatorPkg._pkgs) {
77
- Object.keys(creatorPkg._pkgs).forEach((pkgName) => {
78
- pkg.dependencies[pkgName] = creatorPkg._pkgs[pkgName];
79
- });
80
- }
81
-
82
- fs.writeFileSync(path.join(appFolder, 'package.json'), JSON.stringify(pkg, null, 2));
83
-
84
- // Copy base files
85
- files.forEach((file) => {
86
- const src = path.join(__dirname, 'files', file);
87
- const dest = path.join(appFolder, file);
88
-
89
- if (!fs.existsSync(dest)) {
90
- console.log(` Adding file: ${ file }`);
91
-
92
- const folder = path.dirname(file);
93
-
94
- fs.ensureDirSync(folder);
95
-
96
- // Create the folder if needed
97
- fs.copySync(src, dest);
98
- }
99
- });
100
-
101
- console.log('');
@@ -1,25 +0,0 @@
1
- {
2
- "name": "@rancher/create-app",
3
- "description": "Rancher UI Application generator",
4
- "version": "0.0.0",
5
- "license": "Apache-2.0",
6
- "author": "SUSE",
7
- "private": false,
8
- "bin": "./init",
9
- "files": [
10
- "**/*.*",
11
- "init"
12
- ],
13
- "engines": {
14
- "node": ">=12"
15
- },
16
- "_requires": [
17
- "core-js",
18
- "css-loader",
19
- "@types/lodash",
20
- "@rancher/components"
21
- ],
22
- "dependencies": {
23
- "fs-extra": "^10.0.0"
24
- }
25
- }
@@ -1,28 +0,0 @@
1
- name: Build and Release Extension Catalog
2
-
3
- on:
4
- workflow_dispatch:
5
- push:
6
- branches:
7
- - main
8
- pull_request:
9
- branches:
10
- - main
11
-
12
- defaults:
13
- run:
14
- shell: bash
15
- working-directory: ./
16
-
17
- jobs:
18
- build-extension-catalog:
19
- uses: rancher/dashboard/.github/workflows/build-extension-catalog.yml@master
20
- permissions:
21
- actions: write
22
- contents: read
23
- packages: write
24
- with:
25
- registry_target: ghcr.io
26
- registry_user: ${{ github.actor }}
27
- secrets:
28
- registry_token: ${{ secrets.GITHUB_TOKEN }}
@@ -1,26 +0,0 @@
1
- name: Build and Release Extension Charts
2
-
3
- on:
4
- workflow_dispatch:
5
- push:
6
- branches:
7
- - main
8
- pull_request:
9
- branches:
10
- - main
11
-
12
- defaults:
13
- run:
14
- shell: bash
15
- working-directory: ./
16
-
17
- jobs:
18
- build-extension-charts:
19
- uses: rancher/dashboard/.github/workflows/build-extension-charts.yml@master
20
- permissions:
21
- actions: write
22
- contents: write
23
- deployments: write
24
- pages: write
25
- with:
26
- target_branch: gh-pages
@@ -1 +0,0 @@
1
- module.exports = require('./.shell/pkg/babel.config.js');
@@ -1,14 +0,0 @@
1
- import { importTypes } from '@rancher/auto-import';
2
- import { IPlugin } from '@shell/core/types';
3
-
4
- // Init the package
5
- export default function(plugin: IPlugin): void {
6
- // Auto-import model, detail, edit from the folders
7
- importTypes(plugin);
8
-
9
- // Provide plugin metadata from package.json
10
- plugin.metadata = require('./package.json');
11
-
12
- // Load a product
13
- // plugin.addProduct(require('./product'));
14
- }
@@ -1,53 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "allowJs": true,
4
- "target": "esnext",
5
- "module": "esnext",
6
- "strict": true,
7
- "jsx": "preserve",
8
- "importHelpers": true,
9
- "moduleResolution": "node",
10
- "skipLibCheck": true,
11
- "esModuleInterop": true,
12
- "allowSyntheticDefaultImports": true,
13
- "sourceMap": true,
14
- "baseUrl": ".",
15
- "preserveSymlinks": true,
16
- "typeRoots": [
17
- "../../node_modules",
18
- "../../node_modules/@rancher/shell/types"
19
- ],
20
- "types": [
21
- "node",
22
- "webpack-env",
23
- "@types/node",
24
- "@types/jest",
25
- "@types/lodash",
26
- "rancher",
27
- "shell"
28
- ],
29
- "lib": [
30
- "esnext",
31
- "dom",
32
- "dom.iterable",
33
- "scripthost"
34
- ],
35
- "paths": {
36
- "@shell/*": [
37
- "../../node_modules/@rancher/shell/*"
38
- ],
39
- "@components/*": [
40
- "@rancher/components/*"
41
- ]
42
- }
43
- },
44
- "include": [
45
- "**/*.ts",
46
- "**/*.d.ts",
47
- "**/*.tsx",
48
- "**/*.vue"
49
- ],
50
- "exclude": [
51
- "../../node_modules"
52
- ]
53
- }
@@ -1 +0,0 @@
1
- module.exports = require('./.shell/pkg/vue.config')(__dirname);
package/creators/pkg/init DELETED
@@ -1,254 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- const fs = require('fs-extra');
4
- const path = require('path');
5
- const https = require('https');
6
-
7
- const targets = {
8
- dev: './node_modules/.bin/nuxt dev',
9
- nuxt: './node_modules/.bin/nuxt',
10
- };
11
-
12
- const files = [
13
- 'tsconfig.json',
14
- 'vue.config.js',
15
- 'babel.config.js',
16
- 'index.ts'
17
- ];
18
-
19
- const topLevelScripts = {
20
- 'build-pkg': './node_modules/@rancher/shell/scripts/build-pkg.sh',
21
- 'serve-pkgs': './node_modules/@rancher/shell/scripts/serve-pkgs',
22
- 'publish-pkgs': './node_modules/@rancher/shell/scripts/extension/publish',
23
- 'parse-tag-name': './node_modules/@rancher/shell/scripts/extension/parse-tag-name'
24
- };
25
-
26
- const typeFolders = [
27
- 'l10n',
28
- 'models',
29
- 'edit',
30
- 'list',
31
- 'detail'
32
- ];
33
-
34
- console.log('');
35
- console.log('Creating Skeleton UI Package');
36
-
37
- const args = process.argv;
38
-
39
- if (args.length !== 3) {
40
- console.log('Expected single argument of package name');
41
- }
42
-
43
- const name = args[2];
44
- const folder = path.resolve('.');
45
- const pkgFolder = path.join(folder, 'pkg', name);
46
-
47
- let addTypeFolders = false;
48
- let addWorkflowFolder = false;
49
-
50
- if (args.length > 3) {
51
- for (let i = 3; i < args.length; i++) {
52
- switch (args[i]) {
53
- case '-t':
54
- addTypeFolders = true;
55
- break;
56
- case '-w':
57
- addWorkflowFolder = true;
58
- break;
59
- default:
60
- break;
61
- }
62
- }
63
- }
64
-
65
- const isNodeModulesShell = !fs.existsSync(path.join(folder, 'shell'));
66
-
67
- if (!isNodeModulesShell) {
68
- Object.keys(topLevelScripts).forEach((script) => {
69
- topLevelScripts[script] = topLevelScripts[script].replace('./node_modules/@rancher/shell', './shell');
70
- });
71
- }
72
-
73
- console.log(` Creating package folder: ${ pkgFolder }`);
74
-
75
- fs.ensureDirSync(pkgFolder);
76
-
77
- console.log(' Creating package.json');
78
- fs.copySync(path.join(__dirname, 'pkg.package.json'), path.join(pkgFolder, 'package.json'));
79
-
80
- const rawdata = fs.readFileSync(path.join(pkgFolder, 'package.json'));
81
- const pkg = JSON.parse(rawdata);
82
-
83
- pkg.name = name;
84
- pkg.description = `${ name } plugin`;
85
-
86
- Object.keys(targets).forEach((target) => {
87
- if (!pkg.scripts[target]) {
88
- pkg.scripts[target] = targets[target];
89
- console.log(` Adding script '${ target }' to package.json`);
90
- }
91
- });
92
-
93
- // Add annotation for the latest Rancher version by default
94
- function fetchLatestVersion() {
95
- console.log(' Fetching latest Rancher Version');
96
- const options = { headers: { 'User-Agent': 'nodejs' } };
97
-
98
- https.get('https://api.github.com/repos/rancher/rancher/releases/latest', options, (res) => {
99
- const { statusCode } = res;
100
- const contentType = res.headers['content-type'];
101
-
102
- let error;
103
-
104
- if ( statusCode !== 200 ) {
105
- error = new Error(' Request Failed.\n' +
106
- ` Status Code: ${ statusCode }`);
107
- } else if ( !/^application\/json/.test(contentType) ) {
108
- error = new Error(' Invalid content-type.\n' +
109
- ` Expected application/json but received ${ contentType }`);
110
- }
111
-
112
- if ( error ) {
113
- console.log(error.message);
114
-
115
- res.resume();
116
-
117
- return;
118
- }
119
-
120
- res.setEncoding('utf8');
121
- let rawData = '';
122
-
123
- res.on('data', (chunk) => {
124
- rawData += chunk;
125
- });
126
- res.on('end', () => {
127
- try {
128
- const release = JSON.parse(rawData);
129
-
130
- if ( release.tag_name ) {
131
- console.log(` Adding rancher-version annotation '>= ${ release.tag_name }' to package.json`);
132
-
133
- pkg.rancher = { annotations: { 'catalog.cattle.io/rancher-version': `>= ${ release.tag_name }` } };
134
- writePackageJson();
135
- }
136
- } catch (e) {
137
- console.log(' Error parsing release data', e);
138
- }
139
- });
140
- }).on('error', (e) => {
141
- console.log(' Error fetching latest Rancher Version', e);
142
- });
143
- }
144
-
145
- fetchLatestVersion();
146
- writePackageJson();
147
-
148
- // Add dependencies
149
- // pkg.dependencies['@rancher/shell'] = '^0.6.2';
150
- // pkg.dependencies['core-js'] = '3.18.3';
151
-
152
- function writePackageJson() {
153
- fs.writeFileSync(path.join(pkgFolder, 'package.json'), JSON.stringify(pkg, null, 2));
154
- }
155
-
156
- // Create type folders if needed
157
- if (addTypeFolders) {
158
- typeFolders.forEach((dir) => {
159
- const dest = path.join(path.join(pkgFolder, dir));
160
-
161
- if (!fs.existsSync(dest)) {
162
- console.log(` Creating folder: ${ dir }`);
163
- fs.mkdirSync(dest);
164
- }
165
- });
166
- }
167
-
168
- // Add workflow folder if needed
169
- if (addWorkflowFolder) {
170
- const workflowDir = path.join(folder, '.github/workflows');
171
-
172
- if (!fs.existsSync(workflowDir)) {
173
- fs.mkdirSync(workflowDir, { recursive: true });
174
- }
175
-
176
- const files = [
177
- 'build-extension-catalog.yml',
178
- 'build-extension-charts.yml'
179
- ];
180
-
181
- files.forEach((fileName) => {
182
- const file = path.join(workflowDir, fileName);
183
-
184
- if (!fs.existsSync(file)) {
185
- const src = path.join(__dirname, 'files/.github/workflows', fileName);
186
-
187
- console.log(` Adding file ${ fileName } to root workflows`);
188
- fs.copySync(src, file);
189
- }
190
- });
191
- }
192
-
193
- // Copy base files
194
- files.forEach((file) => {
195
- const src = path.join(__dirname, 'files', file);
196
- const dest = path.join(path.join(pkgFolder, file));
197
-
198
- if (!fs.existsSync(dest)) {
199
- console.log(` Adding file: ${ file }`);
200
- fs.copySync(src, dest);
201
- }
202
- });
203
-
204
- // require("child_process").spawn('yarn', ['install'], {
205
- // cwd: process.cwd(),
206
- // stdio: "inherit"
207
- // });
208
-
209
- // Update tsconfig
210
-
211
- const topLevelRawdata = fs.readFileSync(path.join(folder, 'package.json'));
212
- const topLevelPkg = JSON.parse(topLevelRawdata);
213
- let updated = false;
214
-
215
- Object.keys(topLevelScripts).forEach((target) => {
216
- if (!topLevelPkg.scripts[target]) {
217
- topLevelPkg.scripts[target] = topLevelScripts[target];
218
- console.log(` Adding script '${ target }' to top-level package.json`);
219
- updated = true;
220
- }
221
- });
222
-
223
- if (updated) {
224
- fs.writeFileSync(path.join(folder, 'package.json'), JSON.stringify(topLevelPkg, null, 2));
225
- }
226
-
227
- // Update tsconfig if needed
228
- if (!isNodeModulesShell) {
229
- const tsconfig = require(path.join(pkgFolder, 'tsconfig.json'));
230
-
231
- tsconfig.include = updateArray(tsconfig.include);
232
-
233
- Object.keys(tsconfig.compilerOptions.paths).forEach((p) => {
234
- tsconfig.compilerOptions.paths[p] = updateArray(tsconfig.compilerOptions.paths[p]);
235
- });
236
-
237
- // Update typeRoots
238
- tsconfig.compilerOptions.typeRoots = updateArray(tsconfig.compilerOptions.typeRoots);
239
-
240
- fs.writeFileSync(path.join(pkgFolder, 'tsconfig.json'), JSON.stringify(tsconfig, null, 2));
241
- console.log(' Updated tsconfig.json for shell folder location');
242
- }
243
-
244
- console.log('');
245
-
246
- function updateArray(data) {
247
- const updated = [];
248
-
249
- data.forEach((inc) => {
250
- updated.push(inc.replace('../../node_modules/@rancher/shell', '../../shell'));
251
- });
252
-
253
- return updated;
254
- }
@@ -1,19 +0,0 @@
1
- {
2
- "name": "@rancher/create-pkg",
3
- "description": "Rancher UI Package generator",
4
- "version": "0.0.1",
5
- "license": "Apache-2.0",
6
- "author": "SUSE",
7
- "private": false,
8
- "bin": "./init",
9
- "files": [
10
- "**/*.*",
11
- "init"
12
- ],
13
- "engines": {
14
- "node": ">=12"
15
- },
16
- "dependencies": {
17
- "fs-extra": "^10.0.0"
18
- }
19
- }
@@ -1,21 +0,0 @@
1
- {
2
- "name": "NAME",
3
- "description": "NAME plugin",
4
- "version": "0.1.0",
5
- "private": false,
6
- "rancher": true,
7
- "scripts": {},
8
- "engines": {
9
- "node": ">=12"
10
- },
11
- "devDependencies": {
12
- "@vue/cli-plugin-babel": "4.5.18",
13
- "@vue/cli-service": "4.5.18",
14
- "@vue/cli-plugin-typescript": "4.5.18"
15
- },
16
- "browserslist": [
17
- "> 1%",
18
- "last 2 versions",
19
- "not dead"
20
- ]
21
- }
@@ -1,4 +0,0 @@
1
- declare module '*.vue' {
2
- import Vue from 'vue';
3
- export default Vue;
4
- }
@@ -1,56 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- const path = require('path');
4
- const fs = require('fs-extra');
5
- const { spawnSync } = require('child_process');
6
-
7
- const scriptFolder = __dirname;
8
- const dest = path.resolve('.');
9
-
10
- // Remove first two args
11
- let args = process.argv;
12
- args.splice(0, 2);
13
-
14
- const res = spawnSync(`${__dirname}/upgrade`, args, {
15
- cwd: dest,
16
- shell: false,
17
- stdio: [ 'ignore', process.stdout, process.stderr ],
18
- });
19
-
20
- if (res.status !== 0) {
21
- process.exit(res.status);
22
- }
23
-
24
- // Read the existing package.json
25
- let rawdata = fs.readFileSync(path.join(dest, 'package.json'));
26
- const appPackage = JSON.parse(rawdata);
27
-
28
- // Read the package.json from the app creator
29
- rawdata = fs.readFileSync(path.join(scriptFolder, 'app', 'package.json'));
30
- const latestPackage = JSON.parse(rawdata);
31
-
32
- // Read the package.json from the upgrade creator
33
- rawdata = fs.readFileSync(path.join(scriptFolder, 'package.json'));
34
- const upgradePackage = JSON.parse(rawdata);
35
-
36
- // Update dependency versions to match the latest from the creator
37
- Object.keys(latestPackage._pkgs).forEach((key) => {
38
- appPackage.dependencies[key] = latestPackage._pkgs[key];
39
- });
40
-
41
- // Add in the webpack resolution
42
- appPackage.resolutions = appPackage.resolutions || {};
43
- appPackage.resolutions['**/webpack'] = '4';
44
-
45
- // Update the version of @rancher/shell
46
- const shellVersion = upgradePackage.version;
47
-
48
- appPackage.dependencies['@rancher/shell'] = shellVersion;
49
-
50
- fs.writeFileSync(path.join(dest, 'package.json'), JSON.stringify(appPackage, null, 2) + '\n');
51
-
52
- spawnSync(`yarn`, ['install'], {
53
- cwd: dest,
54
- shell: false,
55
- stdio: [ 'ignore', process.stdout, process.stderr ],
56
- });
@@ -1,20 +0,0 @@
1
- {
2
- "name": "@rancher/create-update",
3
- "description": "Rancher UI Update helper",
4
- "version": "0.0.0",
5
- "license": "Apache-2.0",
6
- "author": "SUSE",
7
- "private": false,
8
- "bin": "./init",
9
- "files": [
10
- "**/*.*",
11
- "init",
12
- "upgrade"
13
- ],
14
- "engines": {
15
- "node": ">=12"
16
- },
17
- "dependencies": {
18
- "fs-extra": "^10.0.0"
19
- }
20
- }
@@ -1,56 +0,0 @@
1
- #!/usr/bin/env sh
2
-
3
- SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
4
-
5
- echo "Upgrading Rancher Shell"
6
-
7
- # Get the version number from the package.json file
8
- VERSION=$(node -p -e "require('${SCRIPT_DIR}/package.json').version")
9
-
10
- echo "Updating to version: ${VERSION}"
11
- echo ""
12
-
13
- FORCE="false"
14
-
15
- if [ "$1" == "-f" ]; then
16
- FORCE="true"
17
- fi
18
-
19
- # Check for a clean git repository
20
- if [ ! -d ".git" ] && [ "${FORCE}" == "false" ]; then
21
- echo "Not runnning in a git repository. Re-run with -f to ignore this check"
22
- echo "Note: This action will update yuor files - running in a git repsository will ensure you have visibility over changes made"
23
- exit 1
24
- fi
25
-
26
- if [[ $(git diff --stat) != '' ]] && [ "${FORCE}" == "false" ]; then
27
- echo "Git repository is not clean. Re-run with -f to ignore this check"
28
- echo "Note: This action will update yuor files - running in a clean git repsository will ensure you have visibility over changes made"
29
- exit 1
30
- fi
31
-
32
- # Check this is a Rancher Extension
33
- if [ ! -f "./package.json" ]; then
34
- echo "Can't find package.json - check you're running from the correct folder"
35
- exit 1
36
- fi
37
-
38
- HAS_SHELL=$(grep "\"@rancher/shell\"" package.json -c )
39
- if [ "${HAS_SHELL}" != "1" ]; then
40
- echo "package.json does not reference @rancher/shell - check you're running from the correct folder"
41
- exit 1
42
- fi
43
-
44
- # Copy files for the top-level folder (from the app creator)
45
- rsync --exclude nuxt.config.js ${SCRIPT_DIR}/app/files/* .
46
-
47
- # Go through each folder in the pkg folder and update their files
48
- for pkg in ./pkg/*
49
- do
50
- if [ -d "${pkg}" ]; then
51
- pkgName=$(basename $pkg)
52
- echo "Updating package ${pkgName}"
53
-
54
- cp ${SCRIPT_DIR}/pkg/files/* ${pkg}
55
- fi
56
- done