Merge pull request #12 from funkyvisions/patch-1
Enabling support for git+http
diff --git a/index.js b/index.js
index c2510c9..9f4694c 100644
--- a/index.js
+++ b/index.js
@@ -25,6 +25,7 @@
var fs = require('fs');
var CordovaError = require('cordova-common').CordovaError;
var isUrl = require('is-url');
+var isGitUrl = require('is-git-url');
var hostedGitInfo = require('hosted-git-info');
/*
@@ -154,7 +155,7 @@
var gitInfo = hostedGitInfo.fromUrl(target);
if (gitInfo) {
target = gitInfo.project;
- } else if (isUrl(target)) {
+ } else if (isUrl(target) || isGitUrl(target)) {
// strip away .git and everything that follows
var strippedTarget = target.split('.git');
var re = /.*\/(.*)/;
diff --git a/package.json b/package.json
index 1082595..891f2db 100644
--- a/package.json
+++ b/package.json
@@ -25,6 +25,7 @@
"dependency-ls": "^1.1.0",
"hosted-git-info": "^2.5.0",
"is-url": "^1.2.1",
+ "is-git-url": "^1.0.0",
"q": "^1.4.1",
"shelljs": "^0.7.0"
},
diff --git a/spec/fetch.spec.js b/spec/fetch.spec.js
index 4d9369c..ab08eab 100644
--- a/spec/fetch.spec.js
+++ b/spec/fetch.spec.js
@@ -283,6 +283,25 @@
})
.fin(done);
}, 30000);
+
+ it('should fetch from git+http successfully', function (done) {
+ fetch('git+http://gitbox.apache.org/repos/asf/cordova-plugin-dialogs.git', tmpDir, opts)
+ .then(function () {
+ // refetch to trigger trimID
+ return fetch('git+http://gitbox.apache.org/repos/asf/cordova-plugin-dialogs.git', tmpDir, opts);
+ })
+ .then(function (result) {
+ var pkgJSON = require(path.join(result, 'package.json'));
+ expect(result).toBeDefined();
+ expect(fs.existsSync(result)).toBe(true);
+ expect(pkgJSON.name).toBe('cordova-plugin-dialogs');
+ })
+ .fail(function (err) {
+ console.error(err);
+ expect(err).toBeUndefined();
+ })
+ .fin(done);
+ }, 30000);
});
describe('fetch failure with unknown module', function () {