summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-07-23 20:55:33 -0700
committerJunio C Hamano <gitster@pobox.com>2012-07-23 20:55:33 -0700
commit9837911c139cefae24c7bc68751cd1cfdc950554 (patch)
tree007d5c9ef1f3b4c40955967ecb7d7fc12683bab1 /contrib
parent331eb92bbcbb114ff07d0b0a7b78dae9d0a75f4c (diff)
parent77eab053a48a2062665c42f63348ae12290de03f (diff)
downloadgit-9837911c139cefae24c7bc68751cd1cfdc950554.tar.gz
Merge branch 'jk/mediawiki-credential'
* jk/mediawiki-credential: mw-to-git: use git-credential's URL parser credential: convert "url" attribute into its parsed subparts mw-to-git: check blank credential attributes via length docs/credential: minor clarity fixups
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/mw-to-git/git-remote-mediawiki32
1 files changed, 4 insertions, 28 deletions
diff --git a/contrib/mw-to-git/git-remote-mediawiki b/contrib/mw-to-git/git-remote-mediawiki
index dc137409b1..8647c92df8 100755
--- a/contrib/mw-to-git/git-remote-mediawiki
+++ b/contrib/mw-to-git/git-remote-mediawiki
@@ -171,32 +171,6 @@ while (<STDIN>) {
## credential API management (generic functions)
-sub credential_from_url {
- my $url = shift;
- my $parsed = URI->new($url);
- my %credential;
-
- if ($parsed->scheme) {
- $credential{protocol} = $parsed->scheme;
- }
- if ($parsed->host) {
- $credential{host} = $parsed->host;
- }
- if ($parsed->path) {
- $credential{path} = $parsed->path;
- }
- if ($parsed->userinfo) {
- if ($parsed->userinfo =~ /([^:]*):(.*)/) {
- $credential{username} = $1;
- $credential{password} = $2;
- } else {
- $credential{username} = $parsed->userinfo;
- }
- }
-
- return %credential;
-}
-
sub credential_read {
my %credential;
my $reader = shift;
@@ -214,8 +188,10 @@ sub credential_read {
sub credential_write {
my $credential = shift;
my $writer = shift;
+ # url overwrites other fields, so it must come first
+ print $writer "url=$credential->{url}\n" if exists $credential->{url};
while (my ($key, $value) = each(%$credential) ) {
- if ($value) {
+ if (length $value && $key ne 'url') {
print $writer "$key=$value\n";
}
}
@@ -254,7 +230,7 @@ sub mw_connect_maybe {
$mediawiki = MediaWiki::API->new;
$mediawiki->{config}->{api_url} = "$url/api.php";
if ($wiki_login) {
- my %credential = credential_from_url($url);
+ my %credential = (url => $url);
$credential{username} = $wiki_login;
$credential{password} = $wiki_passwd;
credential_run("fill", \%credential);