Skip to content

Commit

Permalink
format code in install. install devAlias
Browse files Browse the repository at this point in the history
  • Loading branch information
Hsiaoming Yang committed Mar 16, 2013
1 parent f83b920 commit af5c70c
Showing 1 changed file with 29 additions and 18 deletions.
47 changes: 29 additions & 18 deletions lib/install.js
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -21,18 +21,18 @@ var mo = require('./sdk/module');
var git = require('./sdk/git'); var git = require('./sdk/git');


var _cache = {}; var _cache = {};
var _options = { var store = {
dest: 'sea-modules', dest: spmrc.get('install.path') || 'sea-modules',
cache: path.join(process.env.HOME, '.spm', 'cache'), cache: path.join(process.env.HOME, '.spm', 'cache'),
srcCache: path.join(process.env.HOME, '.spm', 'src'), srcCache: path.join(process.env.HOME, '.spm', 'src'),
parallel: 1 parallel: 1
}; };


module.exports = function(options) { module.exports = function(options) {
_options.parallel = options.parallel || _options.parallel; store.parallel = options.parallel || store.parallel;
_options.dest = options.dest || _options.dest; store.dest = options.dest || store.dest;
_options.source = options.source; store.source = options.source;
_options.force = options.force; store.force = options.force;


var packages; var packages;
if (options.query && options.query.charAt(0) !== '.') { if (options.query && options.query.charAt(0) !== '.') {
Expand Down Expand Up @@ -62,7 +62,7 @@ function queueInstall(tasks, callback) {
task = iduri.resolve(task); task = iduri.resolve(task);
} }
spmInstall(task, callback); spmInstall(task, callback);
}, _options.parallel); }, store.parallel);


tasks.forEach(function(task) { tasks.forEach(function(task) {
q.push(task, function(err) { q.push(task, function(err) {
Expand All @@ -78,7 +78,7 @@ function spmInstall(data, callback) {
if (data.version) { if (data.version) {
pkg = pkg + '@' + data.version; pkg = pkg + '@' + data.version;
} }
if (grunt.util._.contains(Object.keys(_cache), pkg)) { if (_.contains(Object.keys(_cache), pkg)) {
log.debug('ignore', pkg); log.debug('ignore', pkg);
callback(null); callback(null);
return; return;
Expand All @@ -102,7 +102,7 @@ function spmInstall(data, callback) {
if (packages.length) { if (packages.length) {
log.info('depends', packages.join(', ')); log.info('depends', packages.join(', '));
} }
_cache[pkg] = grunt.util._.union(_cache[pkg], packages); _cache[pkg] = _.union(_cache[pkg], packages);


if (packages.length) { if (packages.length) {
queueInstall(packages, callback); queueInstall(packages, callback);
Expand All @@ -113,10 +113,10 @@ function spmInstall(data, callback) {
} }


function fetch(query, callback) { function fetch(query, callback) {
var force = _options.force; var force = store.force;
log.info('fetch', query); log.info('fetch', query);
var data = iduri.resolve(query); var data = iduri.resolve(query);
yuan(_options).info(data, function(err, res, body) { yuan(store).info(data, function(err, res, body) {
if (err) { if (err) {
fetchCache(data, function(err, result) { fetchCache(data, function(err, result) {
if (err) { if (err) {
Expand All @@ -131,7 +131,7 @@ function fetch(query, callback) {
var filepath = path.join( var filepath = path.join(
body.family, body.name, body.version, body.filename body.family, body.name, body.version, body.filename
); );
var dest = path.join(_options.cache, filepath); var dest = path.join(store.cache, filepath);
if (!force && grunt.file.exists(dest) && md5file(dest) === body.md5) { if (!force && grunt.file.exists(dest) && md5file(dest) === body.md5) {
extract(dest, callback); extract(dest, callback);
} else { } else {
Expand All @@ -149,7 +149,7 @@ function fetchTarball(urlpath, dest, callback) {
log.info('download', urlpath); log.info('download', urlpath);


var data = {urlpath: urlpath, method: 'GET', encoding: null}; var data = {urlpath: urlpath, method: 'GET', encoding: null};
yuan(_options).request(data, function(err, res, body) { yuan(store).request(data, function(err, res, body) {
fs.writeFile(dest, body, function(err) { fs.writeFile(dest, body, function(err) {
if (err) { if (err) {
callback(err); callback(err);
Expand All @@ -162,7 +162,7 @@ function fetchTarball(urlpath, dest, callback) {
} }


function fetchCache(data, callback) { function fetchCache(data, callback) {
var fpath = path.join(_options.cache, data.family, data.name); var fpath = path.join(store.cache, data.family, data.name);
if (!fs.existsSync(fpath)) { if (!fs.existsSync(fpath)) {
callback('not in cache'); callback('not in cache');
return; return;
Expand All @@ -183,7 +183,7 @@ function fetchCache(data, callback) {
} }


function fetchGit(pkg, callback) { function fetchGit(pkg, callback) {
var dest = path.join(_options.srcCache, pkg.family, pkg.name); var dest = path.join(store.srcCache, pkg.family, pkg.name);
var revision = pkg.revision || pkg.version || 'HEAD'; var revision = pkg.revision || pkg.version || 'HEAD';
log.debug('revision', revision); log.debug('revision', revision);
if (fs.existsSync(dest)) { if (fs.existsSync(dest)) {
Expand Down Expand Up @@ -237,9 +237,9 @@ function copy(src, callback) {
var format = spmrc.get('install.format'); var format = spmrc.get('install.format');
var regex = /^\{\{\s*family\s*\}\}\/\{\{\s*name\s*\}\}\/\{\{\s*version\s*\}\}\/\{\{\s*filename\s*\}\}$/; var regex = /^\{\{\s*family\s*\}\}\/\{\{\s*name\s*\}\}\/\{\{\s*version\s*\}\}\/\{\{\s*filename\s*\}\}$/;
if (format && /\{\{\s*filename\s*\}\}$/.test(format) && !regex.test(format)) { if (format && /\{\{\s*filename\s*\}\}$/.test(format) && !regex.test(format)) {
dest = path.join(_options.dest, iduri.idFromPackage(pkg, '', format)); dest = path.join(store.dest, iduri.idFromPackage(pkg, '', format));
} else { } else {
dest = path.join(_options.dest, pkg.family, pkg.name, pkg.version); dest = path.join(store.dest, pkg.family, pkg.name, pkg.version);
format = null; format = null;
} }
var debugfile = spmrc.get('install.debugfile') || 'true'; var debugfile = spmrc.get('install.debugfile') || 'true';
Expand Down Expand Up @@ -299,7 +299,18 @@ function parseDependencies(pkg) {
if (typeof pkg === 'string') { if (typeof pkg === 'string') {
pkg = grunt.file.readJSON(pkg); pkg = grunt.file.readJSON(pkg);
} }
var alias = (pkg.spm && pkg.spm.alias) || {}; var alias = {};
if (pkg.spm) {
if (pkg.spm.alias) {
alias = pkg.spm.alias;
}
if (pkg.spm.devAlias) {
alias = _.extend(alias, pkg.spm.devAlias);
}
if (pkg.spm.engines) {
alias = _.defaults(alias, pkg.spm.engines);
}
}
var deps = Object.keys(alias).map(function(key) { var deps = Object.keys(alias).map(function(key) {
return alias[key]; return alias[key];
}); });
Expand Down

0 comments on commit af5c70c

Please sign in to comment.