From 6ec76aa61f5cf5a25e2bccc61b9ef693fcdd4137 Mon Sep 17 00:00:00 2001 From: Alex Kocharin Date: Wed, 18 Feb 2015 17:52:17 +0300 Subject: [PATCH] fix crash when using sinopia as a library --- lib/cli.js | 1 - lib/config.js | 5 +++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/cli.js b/lib/cli.js index e89a82d6b..47e092ea7 100644 --- a/lib/cli.js +++ b/lib/cli.js @@ -72,7 +72,6 @@ function get_hostport() { } function afterConfigLoad() { - if (!config.user_agent) config.user_agent = 'Sinopia/'+pkg.version if (!config.self_path) config.self_path = Path.resolve(config_path) var hostport = get_hostport() diff --git a/lib/config.js b/lib/config.js index ea04e10c7..231238056 100644 --- a/lib/config.js +++ b/lib/config.js @@ -1,10 +1,14 @@ var assert = require('assert') var Crypto = require('crypto') +var fs = require('fs') +var YAML = require('js-yaml') var Error = require('http-errors') var minimatch = require('minimatch') var Path = require('path') var LocalData = require('./local-data') var Utils = require('./utils') +var pkg_file = '../package.yaml' +var pkg = YAML.safeLoad(fs.readFileSync(__dirname+'/'+pkg_file, 'utf8')) // [[a, [b, c]], d] -> [a, b, c, d] function flatten(array) { @@ -24,6 +28,7 @@ function Config(config) { for (var i in config) { if (self[i] == null) self[i] = config[i] } + if (!self.user_agent) self.user_agent = 'Sinopia/'+pkg.version // some weird shell scripts are valid yaml files parsed as string assert.equal(typeof(config), 'object', 'CONFIG: it doesn\'t look like a valid config file')