diff --git a/src/index.js b/src/index.js index 393e39a..05a9199 100644 --- a/src/index.js +++ b/src/index.js @@ -103,7 +103,7 @@ for (const parentRepo of ModuleRepos) { const name = repo[0]; const cloneDir = `${clonesDir}/${name}`; - const moduleDir = repo[2] || ''; + let moduleDir = repo[2] || ''; if (previous.includes(repo)) { let currentModule = currentRepoJson.modules.filter((x) => x.github.repo === repo[0]); @@ -155,7 +155,11 @@ for (const parentRepo of ModuleRepos) { await new Promise((res) => exec(`git checkout ${commitHash}`, res)); if (preprocessor) { - (await import(`./preprocessors/${preprocessor}.js`)).default(`${cloneDir}${moduleDir}`, repo); + const preOut = (await import(`./preprocessors/${preprocessor}.js`)).default(`${cloneDir}${moduleDir}`, repo); + + if (preOut !== undefined) { + moduleDir = preOut; + } } const manifest = JSON.parse(readFileSync(`${cloneDir}${moduleDir}/goosemodModule.json`)); @@ -163,7 +167,7 @@ for (const parentRepo of ModuleRepos) { // console.log(manifest); const outFile = `${manifest.name}.js`; - + const bundler = new Parcel(`${cloneDir}${moduleDir}/${manifest.main}`, Object.assign(parcelOptions, { outFile })); diff --git a/src/preprocessors/pcPlugin.js b/src/preprocessors/pcPlugin.js index b027b44..eb35836 100644 --- a/src/preprocessors/pcPlugin.js +++ b/src/preprocessors/pcPlugin.js @@ -1,11 +1,15 @@ +import { join } from 'path'; import { readFileSync, writeFileSync, mkdirSync, rmSync } from 'fs'; + import sass from 'sass'; export default (manifestPath, repo) => { + const baseDir = join(manifestPath, '..'); + const pcManifest = JSON.parse(readFileSync(manifestPath, 'utf8')); let manifest = { - main: '../index.js', + main: 'index.js', tags: ['port'], name: pcManifest.name, @@ -15,9 +19,6 @@ export default (manifestPath, repo) => { authors: [ pcManifest.author ] }; - rmSync(manifestPath); - mkdirSync(manifestPath); - let content = readFileSync(pcManifest.main || 'index.js', 'utf8');//.replace(/\\/g, '\\\\').replace(/`/g, '\\`'); content = content.replace(`module.exports = `, `export default new `); @@ -39,6 +40,8 @@ export default (manifestPath, repo) => { const jsCode = `import powercord from '_powercord/global';\n` + content; - writeFileSync(`${manifestPath}/goosemodModule.json`, JSON.stringify(manifest)); - writeFileSync(`${manifestPath}/../index.js`, jsCode); + writeFileSync(join(baseDir, `goosemodModule.json`), JSON.stringify(manifest)); + writeFileSync(join(baseDir, `index.js`), jsCode); + + return ''; };