@@ -10,31 +10,19 @@ import util from 'util';
1010
1111import yaml from 'yaml' ;
1212
13- /**
14- * This is a fixed list of extension image names, mapping to whether this
15- * extension is compatible with containerd. Only these extensions will be
16- * scanned.
17- */
18- const extensionInfo = {
19- 'ghcr.io/rancher-sandbox/rancher-desktop-rdx-open-webui:v0.0.4' : true ,
20- 'ghcr.io/rancher-sandbox/epinio-desktop-extension:0.0.23.5' : true ,
21- 'julianb90/tachometer:0.0.3' : true ,
22- 'docker/logs-explorer-extension:0.2.2' : true ,
23- 'prakhar1989/dive-in:0.0.8' : false ,
24- 'joycelin79/newman-extension:0.0.7' : true ,
25- 'docker/resource-usage-extension:1.0.3' : true ,
26- 'anchore/docker-desktop-extension:0.5.1' : false ,
27- 'ignatandrei/blockly-automation:0.0.7' : true ,
28- 'docker/disk-usage-extension:0.2.7' : false ,
29- 'harpooncorp/harpoon-ext:0.0.4' : true ,
30- 'vklokun/docker-desktop-extension:0.1.0' : true ,
31- 'caretdev/intersystems-extension:0.1.7' : true ,
32- } ;
13+ interface extensionInfo {
14+ /** Whether this extension is compatible with containerd; defaults to true. */
15+ containerd_compatible ?: boolean ;
16+ /** Override for the logo. */
17+ logo ?: string ;
18+ }
19+ const EXTENSION_PATH = './scripts/assets/extension-data.yaml' ;
20+ const EXTENSION_INFO : extensionInfo [ ] = yaml . parse ( fs . readFileSync ( EXTENSION_PATH , 'utf-8' ) ) ;
3321
3422const warningString =
3523 '# Data generated by running `yarn generate:extension-data`. DO NOT EDIT.' ;
3624
37- async function processExtension ( imageName : string , containerd : boolean ) {
25+ async function processExtension ( imageName : string , info : extensionInfo ) {
3826 const [ slug , version ] = imageName . split ( ':' , 2 ) ;
3927 const execFile = util . promisify ( childProcess . execFile ) ;
4028 const { stdout :out } = await execFile ( 'docker' , [ 'image' , 'list' , '--format=json' , imageName ] ) ;
@@ -51,18 +39,18 @@ async function processExtension(imageName: string, containerd: boolean) {
5139 return {
5240 slug,
5341 version,
54- containerd_compatible : containerd ,
42+ containerd_compatible : info . containerd_compatible ?? true ,
5543 labels,
5644 title : labels [ 'org.opencontainers.image.title' ] ,
57- logo : labels [ 'com.docker.desktop.extension.icon' ] ,
45+ logo : info . logo ?? labels [ 'com.docker.desktop.extension.icon' ] ,
5846 publisher : labels [ 'org.opencontainers.image.vendor' ] ,
5947 short_description : labels [ 'org.opencontainers.image.description' ] ,
6048 } ;
6149}
6250
6351async function run ( ) {
6452 const fileName = 'pkg/rancher-desktop/assets/extension-data.yaml' ;
65- const promises = Object . entries ( extensionInfo ) . map ( info => processExtension ( ...info ) ) ;
53+ const promises = Object . entries ( EXTENSION_INFO ) . map ( info => processExtension ( ...info ) ) ;
6654 const data = await Promise . all ( promises ) ;
6755 const result = `${ warningString } \n${ yaml . stringify ( data ) } ` ;
6856
0 commit comments