Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /var/www/html/node-red/node_modules/help-me/ drwxr-xr-x | |
| Viewing file: Select action/file-type: 'use strict'
const fs = require('fs')
const { PassThrough, pipeline } = require('readable-stream')
const glob = require('glob')
const defaults = {
ext: '.txt',
help: 'help'
}
function isDirectory (path) {
try {
const stat = fs.lstatSync(path)
return stat.isDirectory()
} catch (err) {
return false
}
}
function helpMe (opts) {
opts = Object.assign({}, defaults, opts)
if (!opts.dir) {
throw new Error('missing dir')
}
if (!isDirectory(opts.dir)) {
throw new Error(`${opts.dir} is not a directory`)
}
return {
createStream: createStream,
toStdout: toStdout
}
function createStream (args) {
if (typeof args === 'string') {
args = args.split(' ')
} else if (!args || args.length === 0) {
args = [opts.help]
}
const out = new PassThrough()
const re = new RegExp(args.map(function (arg) {
return arg + '[a-zA-Z0-9]*'
}).join('[ /]+'))
glob(opts.dir + '/**/*' + opts.ext, function (err, files) {
if (err) return out.emit('error', err)
files = files.map(function (path) {
const relative = path.replace(opts.dir, '').replace(/^\//, '')
return { path, relative }
}).filter(function (file) {
return file.relative.match(re)
})
if (files.length === 0) {
return out.emit('error', new Error('no such help file'))
} else if (files.length > 1) {
const exactMatch = files.find((file) => file.relative === `${args[0]}${opts.ext}`)
if (!exactMatch) {
out.write('There are ' + files.length + ' help pages ')
out.write('that matches the given request, please disambiguate:\n')
files.forEach(function (file) {
out.write(' * ')
out.write(file.relative.replace(opts.ext, ''))
out.write('\n')
})
out.end()
return
}
files = [exactMatch]
}
pipeline(fs.createReadStream(files[0].path), out, () => {})
})
return out
}
function toStdout (args) {
createStream(args)
.on('error', function () {
console.log('no such help file\n')
toStdout()
})
.pipe(process.stdout)
}
}
module.exports = helpMe
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0052 ]-- |