feat: extensions check + resolver
This commit is contained in:
		
							
								
								
									
										20
									
								
								server/modules/extensions/git/ext.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								server/modules/extensions/git/ext.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| const cmdExists = require('command-exists') | ||||
|  | ||||
| module.exports = { | ||||
|   key: 'git', | ||||
|   title: 'Git', | ||||
|   description: 'Distributed version control system. Required for the Git storage module.', | ||||
|   isInstalled: false, | ||||
|   async isCompatible () { | ||||
|     return true | ||||
|   }, | ||||
|   async check () { | ||||
|     try { | ||||
|       await cmdExists('git') | ||||
|       this.isInstalled = true | ||||
|     } catch (err) { | ||||
|       this.isInstalled = false | ||||
|     } | ||||
|     return this.isInstalled | ||||
|   } | ||||
| } | ||||
							
								
								
									
										21
									
								
								server/modules/extensions/pandoc/ext.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								server/modules/extensions/pandoc/ext.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| const cmdExists = require('command-exists') | ||||
| const os = require('os') | ||||
|  | ||||
| module.exports = { | ||||
|   key: 'pandoc', | ||||
|   title: 'Pandoc', | ||||
|   description: 'Convert between markup formats. Required for converting from other formats such as MediaWiki, AsciiDoc, Textile and other wikis.', | ||||
|   async isCompatible () { | ||||
|     return os.arch() === 'x64' | ||||
|   }, | ||||
|   isInstalled: false, | ||||
|   async check () { | ||||
|     try { | ||||
|       await cmdExists('pandoc') | ||||
|       this.isInstalled = true | ||||
|     } catch (err) { | ||||
|       this.isInstalled = false | ||||
|     } | ||||
|     return this.isInstalled | ||||
|   } | ||||
| } | ||||
							
								
								
									
										21
									
								
								server/modules/extensions/puppeteer/ext.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								server/modules/extensions/puppeteer/ext.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,21 @@ | ||||
| const cmdExists = require('command-exists') | ||||
| const os = require('os') | ||||
|  | ||||
| module.exports = { | ||||
|   key: 'puppeteer', | ||||
|   title: 'Puppeteer', | ||||
|   description: 'Headless chromium browser for server-side rendering. Required for generating PDF versions of pages and render content elements on the server (e.g. Mermaid diagrams)', | ||||
|   async isCompatible () { | ||||
|     return os.arch() === 'x64' | ||||
|   }, | ||||
|   isInstalled: false, | ||||
|   async check () { | ||||
|     try { | ||||
|       await cmdExists('pandoc') | ||||
|       this.isInstalled = true | ||||
|     } catch (err) { | ||||
|       this.isInstalled = false | ||||
|     } | ||||
|     return this.isInstalled | ||||
|   } | ||||
| } | ||||
							
								
								
									
										19
									
								
								server/modules/extensions/sharp/ext.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								server/modules/extensions/sharp/ext.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | ||||
| const fs = require('fs-extra') | ||||
| const os = require('os') | ||||
| const path = require('path') | ||||
|  | ||||
| /* global WIKI */ | ||||
|  | ||||
| module.exports = { | ||||
|   key: 'sharp', | ||||
|   title: 'Sharp', | ||||
|   description: 'Process and transform images. Required to generate thumbnails of uploaded images and perform transformations.', | ||||
|   async isCompatible () { | ||||
|     return os.arch() === 'x64' | ||||
|   }, | ||||
|   isInstalled: false, | ||||
|   async check () { | ||||
|     this.isInstalled = await fs.pathExists(path.join(WIKI.ROOTPATH, 'node_modules/sharp')) | ||||
|     return this.isInstalled | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user