old_contents: "use strict";
  
  const fs = require("fs");
  const Helper = require("../helper");
  const colors = require("colors/safe");
  const path = require("path");
  const _ = require("lodash");
  const themes = new Map();
  
  module.exports = {
  	getAll: getAll,
  	getFilename: getFilename
  };
  
  fs.readdir("client/themes/", (err, builtInThemes) => {
  	if (err) {
  		return;
  	}
  	builtInThemes
  		.filter((theme) => theme.endsWith(".css"))
  		.map(makeLocalThemeObject)
  		.forEach((theme) => themes.set(theme.name, theme));
  });
  
  fs.readdir(Helper.getPackagesPath(), (err, packages) => {
  	if (err) {
  		return;
  	}
  	packages
  		.map(makePackageThemeObject)
  		.forEach((theme) => {
  			if (theme) {
  				themes.set(theme.name, theme);
  			}
  		});
  });
  
  function getAll() {
  	return _.sortBy(Array.from(themes.values()), "displayName");
  }
  
  function getFilename(module) {
  	if (themes.has(module)) {
  		return themes.get(module).filename;
  	}
  }
  
  function makeLocalThemeObject(css) {
  	const themeName = css.slice(0, -4);
  	return {
  		displayName: themeName.charAt(0).toUpperCase() + themeName.slice(1),
  		filename: path.join(__dirname, "..", "client", "themes", `${themeName}.css`),
  		name: themeName
  	};
  }
  
  function getModuleInfo(packageName) {
  	let module;
  	try {
  		module = require(Helper.getPackageModulePath(packageName));
  	} catch (e) {
  		log.warn(`Specified theme ${colors.yellow(packageName)} is not installed in packages directory`);
  		return;
  	}
  	if (!module.thelounge) {
  		log.warn(`Specified theme ${colors.yellow(packageName)} doesn't have required information.`);
  		return;
  	}
  	return module.thelounge;
  }
  
  function makePackageThemeObject(moduleName) {
  	const module = getModuleInfo(moduleName);
  	if (!module || module.type !== "theme") {
  		return;
  	}
  	const modulePath = Helper.getPackageModulePath(moduleName);
  	const displayName = module.name || moduleName;
  	const filename = path.join(modulePath, module.css);
  	return {
  		displayName: displayName,
  		filename: filename,
  		name: moduleName
  	};
  }
  
new_contents: "use strict";
  
  const fs = require("fs");
  const Helper = require("../helper");
  const colors = require("colors/safe");
  const path = require("path");
  const _ = require("lodash");
  const themes = new Map();
  
  module.exports = {
  	getAll: getAll,
  	getFilename: getFilename
  };
  
  fs.readdir(path.join(__dirname, "..", "..", "public", "themes"), (err, builtInThemes) => {
  	if (err) {
  		return;
  	}
  	builtInThemes
  		.filter((theme) => theme.endsWith(".css"))
  		.map(makeLocalThemeObject)
  		.forEach((theme) => themes.set(theme.name, theme));
  });
  
  fs.readdir(Helper.getPackagesPath(), (err, packages) => {
  	if (err) {
  		return;
  	}
  	packages
  		.map(makePackageThemeObject)
  		.forEach((theme) => {
  			if (theme) {
  				themes.set(theme.name, theme);
  			}
  		});
  });
  
  function getAll() {
  	return _.sortBy(Array.from(themes.values()), "displayName");
  }
  
  function getFilename(module) {
  	if (themes.has(module)) {
  		return themes.get(module).filename;
  	}
  }
  
  function makeLocalThemeObject(css) {
  	const themeName = css.slice(0, -4);
  	return {
  		displayName: themeName.charAt(0).toUpperCase() + themeName.slice(1),
  		filename: path.join(__dirname, "..", "..", "public", "themes", `${themeName}.css`),
  		name: themeName
  	};
  }
  
  function getModuleInfo(packageName) {
  	let module;
  	try {
  		module = require(Helper.getPackageModulePath(packageName));
  	} catch (e) {
  		log.warn(`Specified theme ${colors.yellow(packageName)} is not installed in packages directory`);
  		return;
  	}
  	if (!module.thelounge) {
  		log.warn(`Specified theme ${colors.yellow(packageName)} doesn't have required information.`);
  		return;
  	}
  	return module.thelounge;
  }
  
  function makePackageThemeObject(moduleName) {
  	const module = getModuleInfo(moduleName);
  	if (!module || module.type !== "theme") {
  		return;
  	}
  	const modulePath = Helper.getPackageModulePath(moduleName);
  	const displayName = module.name || moduleName;
  	const filename = path.join(modulePath, module.css);
  	return {
  		displayName: displayName,
  		filename: filename,
  		name: moduleName
  	};
  }
  
subject: Fix local theme folder