Sha256: 1712937aaa963069a69f373ffa32089fd6cf258add38341d096fb0cf3d700c93

Contents?: true

Size: 1.34 KB

Versions: 72

Compression:

Stored size: 1.34 KB

Contents

var path =  require('path')
  , util =  require('util')
  , fs   =  require('fs')
  , utl  =  require('./utl')
  , home =  process.env.HOME
  , settings;

function getSettings (home_) {
  if (settings) return settings;
  try {
    settingsJson = fs.readFileSync(path.join(home_ || home, '.cardinalrc'), 'utf-8');
  } catch (_) {
    // no .cardinalrc found - not a problem
    return undefined;
  }
  try {
    return JSON.parse(settingsJson);
  } catch (e) {
    // Have a .cardinalrc, but something about it is wrong - warn the user
    // Coudn't parse the contained JSON
    console.error(e);
    return undefined;
  }
}

// home_ mainly to be used during tests
// Resolves the preferred theme from the .cardinalrc found in the HOME directory
// If it couldn't be resolved, undefined is returned
function resolveTheme (home_) {
  var themePath
    , settings = getSettings(home_);

  if (!settings || !settings.theme) return undefined;

  try {
    // allow specifying just the name of a built-in theme or a full path to a custom theme
    themePath = utl.isPath(settings.theme) ? settings.theme : path.join(__dirname, 'themes', settings.theme);

    return require(themePath);
  } catch (e) {
    // Specified theme path is invalid
    console.error(e);
    return undefined;
  }
}

module.exports = {
    resolveTheme: resolveTheme
  , getSettings: getSettings
};

Version data entries

72 entries across 72 versions & 3 rubygems

Version Path
ilog-0.4.1 node_modules/cardinal/settings.js
ilog-0.4.0 node_modules/cardinal/settings.js
ilog-0.3.3 node_modules/cardinal/settings.js
trusty-festivity-extension-2.6.3 node_modules/bower/node_modules/cardinal/settings.js
trusty-festivity-extension-2.6.2 node_modules/bower/node_modules/cardinal/settings.js
trusty-festivity-extension-2.6.1 node_modules/bower/node_modules/cardinal/settings.js
trusty-festivity-extension-2.6 node_modules/bower/node_modules/cardinal/settings.js
trusty-festivity-extension-2.5.19 node_modules/bower/node_modules/cardinal/settings.js
trusty-festivity-extension-2.5.18 node_modules/bower/node_modules/cardinal/settings.js
trusty-festivity-extension-2.5.17 node_modules/bower/node_modules/cardinal/settings.js
trusty-festivity-extension-2.5.16 node_modules/bower/node_modules/cardinal/settings.js
trusty-festivity-extension-2.5.15 node_modules/bower/node_modules/cardinal/settings.js
trusty-festivity-extension-2.5.14 node_modules/bower/node_modules/cardinal/settings.js
trusty-festivity-extension-2.5.13 node_modules/bower/node_modules/cardinal/settings.js
trusty-festivity-extension-2.5.12 node_modules/bower/node_modules/cardinal/settings.js
trusty-festivity-extension-2.5.11 node_modules/bower/node_modules/cardinal/settings.js
trusty-festivity-extension-2.5.10 node_modules/bower/node_modules/cardinal/settings.js
trusty-festivity-extension-2.5.9 node_modules/bower/node_modules/cardinal/settings.js
trusty-festivity-extension-2.5.8 node_modules/bower/node_modules/cardinal/settings.js
trusty-festivity-extension-2.5.7 node_modules/bower/node_modules/cardinal/settings.js