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