feat: extensions check + resolver

This commit is contained in:
NGPixel
2020-05-18 00:45:51 -04:00
committed by Nicolas Giard
parent abc9e4e1d4
commit e1382771cf
14 changed files with 200 additions and 258 deletions

View 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
}
}

View 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
}
}

View 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
}
}

View 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
}
}