修复一些错误

This commit is contained in:
masnn committed 2020-05-19 12:46:00 +08:00
1 parent 747cb1b9b5
commit b19f948fdd
30 files changed
+306 -132

No files matched your search

+36 -14
View File
@@ -2,6 +2,7 @@
/* eslint-disable no-await-in-loop */
/* eslint-disable no-eval */
const fs = require('fs');
const os = require('os');
const zlib = require('zlib');
const path = require('path');
const yaml = require('js-yaml');
@@ -11,29 +12,50 @@ function root(name) {
return path.resolve(process.cwd(), name);
}
const moduleRoots = [
root('.build/module'),
root('module'),
root(path.resolve(os.homedir(), '.hydro', 'module')),
root('.'),
];
let moduleRoot;
for (const i of moduleRoots) {
if (fs.existsSync(i) && fs.statSync(i).isDirectory()) {
moduleRoot = i;
break;
}
}
async function getInstalled() {
const files = fs.readdirSync(root('.build/module'));
const installed = [];
const modules = [];
const files = fs.readdirSync(moduleRoot);
for (const file of files) {
if (file.endsWith('.hydro')) {
const f = fs.readFileSync(root(`.build/module/${file}`));
const s = fs.statSync(root(`.build/module/${file}`));
installed.push({
...yaml.safeLoad(zlib.gunzipSync(f)),
id: file.split('.')[0],
size: s.size,
});
try {
const f = fs.readFileSync(root(`${moduleRoot}/${file}`));
const s = fs.statSync(root(`${moduleRoot}/${file}`));
const m = {
...yaml.safeLoad(zlib.gunzipSync(f)),
filename: file.split('.')[0],
size: s.size,
};
modules.push(m);
} catch (e) {
if (e.code === 'Z_DATA_ERROR') {
console.error(`Module Load Fail: ${file} (File Corrupted)`);
} else console.error(`Module Load Fail: ${file} ${e}`);
}
}
}
return installed;
return modules;
}
async function del(id) {
fs.unlinkSync(root(`.build/module/${id}.hydro`));
fs.unlinkSync(root(`${moduleRoot}/${id}.hydro`));
}
async function install(id, url) {
await download(url, root(`module/${id}.hydro`));
async function install(url) {
await download(url, root(`${moduleRoot}/${String.random(16)}.hydro`));
}
module.exports = { getInstalled, del, install };
global.Hydro.lib.hpm = module.exports = { getInstalled, del, install };