diff --git a/tool/tmtheme.js b/tool/tmtheme.js index 02d9542e..c784eec7 100755 --- a/tool/tmtheme.js +++ b/tool/tmtheme.js @@ -106,7 +106,7 @@ function extractStyles(theme) { for (var i=1; i.css rules, // (because some exist, for collab1 and ace_indentation_guide try { - var outThemeCss = fs.readFileSync(__dirname + "/../lib/ace/theme/" + name + ".css"); + var outThemeCss = fs.readFileSync(outputDirectory + "/" + name + ".css"); var oldRules = cssParse(outThemeCss).stylesheet.rules; var newRules = cssParse(css).stylesheet.rules; @@ -333,6 +337,7 @@ function convertTheme(name) { css = cssStringify({stylesheet: {rules: oldRules}}, { compress: false }); } catch(e) { console.log("Creating new file: " + name + ".css") + css = cssStringify(cssParse(css), { compress: false }); } var js = fillTemplate(jsTemplate, { @@ -342,13 +347,25 @@ function convertTheme(name) { isDark: styles.isDark }); - fs.writeFileSync(__dirname + "/../lib/ace/theme/" + name + ".js", js); - fs.writeFileSync(__dirname + "/../lib/ace/theme/" + name + ".css", css); + fs.writeFileSync(outputDirectory + "/" + name + ".js", js); + fs.writeFileSync(outputDirectory + "/" + name + ".css", css); }) } -for (var name in themes) { - convertTheme(name); +if (process.argv.length > 1) { + var args = process.argv.splice(2); + if (args.length < 3) { + console.error("Usage: node tmtheme.js [theme_name, path/to/theme.tmTheme path/to/output/directory]"); + process.exit(1); + } + var name = args[0]; + var themePath = args[1]; + var outputDirectory = args[2]; + convertTheme(name, themePath, outputDirectory); +} else { + for (var name in themes) { + convertBuiltinTheme(name); + } } var sortedUnsupportedScopes = {};