lib/utils/compiler/themes.js
function getThemeFromPath(dir, program, cb) {
        var configPath = path.resolve(dir, "theme.json");
        program.log(2, constants.LOG_SEV_INFO, "Attempting to read " + configPath);
        fs.readFile(configPath, { encoding: 'utf-8' }, function (err, data) {
            if (err) {
                program.log(1, constants.LOG_SEV_ERROR, "Error reading " + configPath);
                return cb(err);
            }
            var config;
            try {
                config = eval('(' + data + ')');
            } catch (e) {
                program.log(1, constants.LOG_SEV_ERROR, "Error parsing " + configPath + ".");
                program.log(2, constants.LOG_SEV_ERROR, "\n\n" + data);
                return cb(e);
            }
            var themeConf = config.about;
            if (!themeConf) {
                var errorStr = "No about section found in " + configPath;
                program.log(1, constants.LOG_SEV_ERROR, errorStr);
                return cb(new Error(errorStr));
            }
            themeConf.baseDir = dir;
            themeConf.program = program;
            cb(null, new Theme(themeConf));
        });
    }
function getThemeFromPath(dir, program, cb) {
        var configPath = path.resolve(dir, "theme.json");
        program.log(2, constants.LOG_SEV_INFO, "Attempting to read " + configPath);
        fs.readFile(configPath, { encoding: 'utf-8' }, function (err, data) {
            if (err) {
                program.log(1, constants.LOG_SEV_ERROR, "Error reading " + configPath);
                return cb(err);
            }
            var config;
            try {
                config = eval('(' + data + ')');
            } catch (e) {
                program.log(1, constants.LOG_SEV_ERROR, "Error parsing " + configPath + ".");
                program.log(2, constants.LOG_SEV_ERROR, "\n\n" + data);
                return cb(e);
            }
            var themeConf = config.about;
            if (!themeConf) {
                var errorStr = "No about section found in " + configPath;
                program.log(1, constants.LOG_SEV_ERROR, errorStr);
                return cb(new Error(errorStr));
            }
            themeConf.baseDir = dir;
            themeConf.program = program;
            cb(null, new Theme(themeConf));
        });
    }
function getThemeFromPath ( dir , program , cb ) { var configPath = path . resolve ( dir , "theme.json" ) ; program . log ( 2 , constants . LOG_SEV_INFO , "Attempting to read " + configPath ) ; fs . readFile ( configPath , { encoding : 'utf-8' } , function ( err , data ) { if ( err ) { program . log ( 1 , constants . LOG_SEV_ERROR , "Error reading " + configPath ) ; return cb ( err ) ; } var config ; try { config = eval ( '(' + data + ')' ) ; } catch ( e ) { program . log ( 1 , constants . LOG_SEV_ERROR , "Error parsing " + configPath + "." ) ; program . log ( 2 , constants . LOG_SEV_ERROR , "\n\n" + data ) ; return cb ( e ) ; } var themeConf = config . about ; if ( ! themeConf ) { var errorStr = "No about section found in " + configPath ; program . log ( 1 , constants . LOG_SEV_ERROR , errorStr ) ; return cb ( new Error ( errorStr ) ) ; } themeConf . baseDir = dir ; themeConf . program = program ; cb ( null , new Theme ( themeConf ) ) ; } ) ; }
requires absolute path
requires absolute path