Juggle paths and keep user.scss in data
This commit is contained in:
parent
7e10de32cb
commit
c0765120e8
|
@ -207,7 +207,7 @@ export class BetterDiscord {
|
|||
|
||||
async ensureDirectories() {
|
||||
await FileUtils.ensureDirectory(this.config.getPath('ext'));
|
||||
await FileUtils.ensureDirectory(this.config.getPath('user'));
|
||||
await FileUtils.ensureDirectory(this.config.getPath('userdata'));
|
||||
await Promise.all([
|
||||
FileUtils.ensureDirectory(this.config.getPath('plugins')),
|
||||
FileUtils.ensureDirectory(this.config.getPath('themes')),
|
||||
|
@ -257,20 +257,20 @@ export class BetterDiscord {
|
|||
*/
|
||||
extraPaths() {
|
||||
const base = path.resolve(this.config.getPath('data'), '..');
|
||||
const userdata = path.resolve(base, 'userdata');
|
||||
const ext = path.resolve(base, 'ext');
|
||||
const plugins = path.resolve(ext, 'plugins');
|
||||
const themes = path.resolve(ext, 'themes');
|
||||
const modules = path.resolve(ext, 'modules');
|
||||
const user = path.resolve(this.config.getPath('data'), 'user');
|
||||
const userfiles = path.resolve(user, 'files');
|
||||
const snippets = path.resolve(user, 'snippets');
|
||||
const userfiles = path.resolve(userdata, 'files');
|
||||
const snippets = path.resolve(userdata, 'snippets');
|
||||
|
||||
this.config.addPath('base', base);
|
||||
this.config.addPath('ext', ext);
|
||||
this.config.addPath('plugins', plugins);
|
||||
this.config.addPath('themes', themes);
|
||||
this.config.addPath('modules', modules);
|
||||
this.config.addPath('user', user);
|
||||
this.config.addPath('userdata', userdata);
|
||||
this.config.addPath('userfiles', userfiles);
|
||||
this.config.addPath('snippets', snippets);
|
||||
}
|
||||
|
|
|
@ -38,14 +38,25 @@ export default class Editor extends Module {
|
|||
try {
|
||||
const files = await FileUtils.listDirectory(this.bd.config.getPath('userfiles'));
|
||||
|
||||
const constructFiles = files.map(async file => {
|
||||
const constructFiles = await Promise.all(files.map(async file => {
|
||||
const content = await FileUtils.readFile(path.resolve(this.bd.config.getPath('userfiles'), file));
|
||||
return { type: 'file', name: file, saved: true, mode: this.resolveMode(file), content, savedContent: content, hoisted: file === 'user.scss' };
|
||||
return { type: 'file', name: file, saved: true, mode: this.resolveMode(file), content, savedContent: content };
|
||||
}));
|
||||
|
||||
const userscssPath = path.resolve(this.bd.config.getPath('data'), 'user.scss');
|
||||
const userscss = await FileUtils.readFile(userscssPath);
|
||||
constructFiles.push({
|
||||
caption: 'user',
|
||||
type: 'file',
|
||||
name: 'user.scss',
|
||||
saved: true,
|
||||
mode: 'scss',
|
||||
content: userscss,
|
||||
savedContent: userscss,
|
||||
hoisted: true
|
||||
});
|
||||
|
||||
const awaitFiles = await Promise.all(constructFiles);
|
||||
|
||||
event.reply(awaitFiles);
|
||||
event.reply(constructFiles);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
event.reject({ err });
|
||||
|
@ -56,14 +67,12 @@ export default class Editor extends Module {
|
|||
try {
|
||||
const files = await FileUtils.listDirectory(this.bd.config.getPath('snippets'));
|
||||
|
||||
const constructFiles = files.map(async file => {
|
||||
const constructFiles = await Promise.all(files.map(async file => {
|
||||
const content = await FileUtils.readFile(path.resolve(this.bd.config.getPath('snippets'), file));
|
||||
return { type: 'snippet', name: file, saved: true, mode: this.resolveMode(file), content, savedContent: content };
|
||||
});
|
||||
}));
|
||||
|
||||
const awaitFiles = await Promise.all(constructFiles);
|
||||
|
||||
event.reply(awaitFiles);
|
||||
event.reply(constructFiles);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
event.reject({ err });
|
||||
|
@ -71,8 +80,12 @@ export default class Editor extends Module {
|
|||
});
|
||||
|
||||
BDIpc.on('editor-saveFile', async (event, file) => {
|
||||
const filePath = (file.hoisted && file.name === 'user.scss') ?
|
||||
path.resolve(this.bd.config.getPath('data'), 'user.scss') :
|
||||
path.resolve(this.bd.config.getPath('userfiles'), file.name);
|
||||
|
||||
try {
|
||||
await FileUtils.writeFile(path.resolve(this.bd.config.getPath('userfiles'), file.name), file.content);
|
||||
await FileUtils.writeFile(filePath, file.content);
|
||||
event.reply('ok');
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
|
|
Loading…
Reference in New Issue