Skip to content
This repository has been archived by the owner on Mar 27, 2022. It is now read-only.

Commit

Permalink
fix(syncer): add version to operadirver name
Browse files Browse the repository at this point in the history
  • Loading branch information
fengmk2 committed May 10, 2015
1 parent 9623323 commit a79371d
Show file tree
Hide file tree
Showing 4 changed files with 109 additions and 50 deletions.
5 changes: 3 additions & 2 deletions config/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ var config = {
url: 'https://npmjs.com',
description: 'a JavaScript package manager.'
},
'electron': {
electron: {
name: 'electron',
category: 'electron',
enable: true,
Expand Down Expand Up @@ -186,7 +186,8 @@ var config = {
disturl: 'https://github.com/operasoftware/operachromiumdriver/releases',
githubRepo: 'operasoftware/operachromiumdriver',
url: 'https://github.com/operasoftware/operachromiumdriver',
description: 'OperaDriver for Chromium-based Opera releases'
description: 'OperaDriver for Chromium-based Opera releases',
syncerClass: 'Operadriver',
},
selenium: {
alwayNewDirIndex: 0,
Expand Down
51 changes: 51 additions & 0 deletions sync/Operadriver.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
/**!
* mirrors - sync/Operadriver.js
*
* Copyright(c) cnpm and other contributors.
* MIT Licensed
*
* Authors:
* fengmk2 <fengmk2@gmail.com> (http://fengmk2.com)
* dead_horse <dead_horse@qq.com>
*/

'use strict';

/**
* Module dependencies.
*/

var util = require('util');
var GithubSyncer = require('./github');

module.exports = OperadriverSyncer;

function OperadriverSyncer(options) {
if (!(this instanceof OperadriverSyncer)) {
return new OperadriverSyncer(options);
}
GithubSyncer.call(this, options);
}

util.inherits(OperadriverSyncer, GithubSyncer);

var proto = OperadriverSyncer.prototype;

proto.formatAssetItem = function (fullname, asset) {
// "browser_download_url": "https://github.com/operasoftware/operachromiumdriver/releases/download/v0.2.0/operadriver_mac64.zip"
var version = asset.browser_download_url.split('/');
version = version[version.length - 2];
var name = asset.name;
if (name.indexOf(version) === -1) {
name = name.replace('_', '_' + version + '_');
}
console.log(name, asset, fullname)
return {
name: name,
date: asset.updated_at || asset.created_at,
size: asset.size,
type: 'file',
downloadURL: asset.browser_download_url,
parent: fullname
};
};
92 changes: 49 additions & 43 deletions sync/github.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,56 +59,62 @@ proto.listdir = function* (fullname) {
throw new Error(util.format('get %s resposne %s', this.url, result.status));
}

var archiveUrl = this.archiveUrl;
var releases = this.max
? result.data.slice(0, this.max)
: result.data;

return releases.map(parseRelease).reduce(function (prev, curr) {
var that = this;
return releases.map(function (release) {
return that.parseRelease(fullname, release);
}).reduce(function (prev, curr) {
return prev.concat(curr);
});
};

proto.parseRelease = function (fullname, release) {
var items = [];
var name;
if (release.tarball_url) {
name = release.tag_name + '.tar.gz';
items.push({
name: name,
date: release.created_at,
size: null,
type: 'file',
downloadURL: this.archiveUrl + name,
parent: fullname
});
}

function parseRelease(release) {
var items = [];
var name;
if (release.tarball_url) {
name = release.tag_name + '.tar.gz';
items.push({
name: name,
date: release.created_at,
size: null,
type: 'file',
downloadURL: archiveUrl + name,
parent: fullname
});
}

if (release.zipball_url) {
name = release.tag_name + '.zip';
items.push({
name: name,
date: release.created_at,
size: null,
type: 'file',
downloadURL: archiveUrl + name,
parent: fullname
});
}

if (release.assets) {
release.assets.forEach(function (asset) {
items.push({
name: asset.name,
date: asset.updated_at || asset.created_at,
size: asset.size,
type: 'file',
downloadURL: asset.browser_download_url,
parent: fullname
});
});
}

return items;
if (release.zipball_url) {
name = release.tag_name + '.zip';
items.push({
name: name,
date: release.created_at,
size: null,
type: 'file',
downloadURL: this.archiveUrl + name,
parent: fullname
});
}

if (release.assets) {
var that = this;
release.assets.forEach(function (asset) {
items.push(that.formatAssetItem(fullname, asset));
});
}

return items;
};

proto.formatAssetItem = function (fullname, asset) {
return {
name: asset.name,
date: asset.updated_at || asset.created_at,
size: asset.size,
type: 'file',
downloadURL: asset.browser_download_url,
parent: fullname
};
};
11 changes: 6 additions & 5 deletions sync/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,18 +40,19 @@ for (var key in syncers) {
continue;
}

if (syncer.syncerClass) {
syncer.Syncer = require('./' + syncer.syncerClass);
console.log(syncer)
continue;
}

// sync from github
if (syncer.githubRepo) {
GithubSyncer = GithubSyncer || require('./github');
syncer.Syncer = GithubSyncer;
continue;
}

if (syncer.syncerClass) {
syncer.Syncer = require('./' + syncer.syncerClass);
continue;
}

syncer.Syncer = require('./' + key);
}

Expand Down

0 comments on commit a79371d

Please sign in to comment.