Skip to content

Commit b431b45

Browse files
committed
Scripts: add crate util funcs for working with GitHub repos
1 parent bfc5a5f commit b431b45

File tree

2 files changed

+26
-14
lines changed

2 files changed

+26
-14
lines changed

scripts/spec_sources/azure.js

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,36 @@
11
'use strict';
22

3-
var path = require('path');
3+
var Path = require('path');
44
var assert = require('assert');
55

66
var _ = require('lodash');
77
var util = require('../util');
88

99
module.exports = function () {
10-
var regex = RegExp('^[^/]+/(([^/]+)/[^/]+/swagger/[^/]+)$');
10+
var files = util.listGitHubFiles('Azure', 'azure-rest-api-specs', '*/swagger/*.json');
1111

12-
//TODO: use makeRequest lib to dowload archive
13-
var files = util.exec('wget -q -O- https://codeload.github.com/Azure/azure-rest-api-specs/tar.gz/master | tar -tz');
14-
return _(files).split('\n').map(function (filename) {
15-
var result = regex.exec(filename);
16-
if (!result)
17-
return;
12+
//Workaround
13+
files = _.filter(files, x => (x.split('/').length == 4));
14+
15+
return _.map(files, filename => {
1816

1917
//Workaround for https://github.com/Azure/azure-rest-api-specs/issues/229
20-
var service = result[2];
21-
var filename = path.basename(result[1], '.json');
18+
var service = filename.split('/')[0];
19+
var basename = Path.basename(filename, '.json');
2220
if (['arm-compute', 'arm-machinelearning'].indexOf(service) !== -1
23-
&& !service.endsWith(filename)) {
24-
service += '-' + filename;
21+
&& !service.endsWith(basename)) {
22+
service += '-' + basename;
2523
}
2624

2725
return {
2826
info: {
2927
'x-serviceName': service,
3028
'x-origin': {
31-
url: 'https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/' + result[1],
29+
url: util.rawGitHubUrl('Azure', 'azure-rest-api-specs', filename),
3230
format: 'swagger',
3331
version: '2.0'
3432
}
3533
}
3634
}
37-
}).compact().value();
35+
});
3836
}

scripts/util.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,3 +200,17 @@ exports.editFile = function (str) {
200200
});
201201
});
202202
}
203+
204+
exports.listGitHubFiles = function (user, repo, glob) {
205+
//TODO: use makeRequest lib to dowload archive
206+
var files = exports.exec(`wget -q -O- https://codeload.github.com/${user}/${repo}/tar.gz/master | tar -tz '*/${glob}'`);
207+
return _(files)
208+
.split('\n')
209+
.map(file => file.replace(repo + '-master/', ''))
210+
.filter(line => line != '' && line.slice(-1) != '/')
211+
.value();
212+
};
213+
214+
exports.rawGitHubUrl = function (user, repo, path) {
215+
return `https://raw.githubusercontent.com/${user}/${repo}/master/${path}`;
216+
}

0 commit comments

Comments
 (0)