Commit:    7bc1c7900fba8b34932a0618d75f37a0b649e394
Author:    Christoph M. Becker <[email protected]>         Mon, 7 Sep 2020 
13:42:26 +0200
Parents:   9e1ca1002ade165431925eca3c6ec898244de02c
Branches:  master

Link:       
http://git.php.net/?p=web/rmtools.git;a=commitdiff;h=7bc1c7900fba8b34932a0618d75f37a0b649e394

Log:
Add general support for exporting from a Github mirror

This is a follow up on the quick fix for exporting from the php-src
Github mirror[1].  Instead of hard-coding everything in the code, we
introduce a configurable `gh_url`, and use it if given.  We cannot use
the repository URL, though, because the toplevel folder inside the
downloaded archive would have a different name (the shortened revision
number is expanded again); downloading from the codeload subdomain
gives the desired result.

[1] 
<https://github.com/php/web-rmtools/commit/9e1ca1002ade165431925eca3c6ec898244de02c>

Changed paths:
  M  data/config/repo/phpnet.ini
  M  include/Git.php
  M  include/Repository.php


Diff:
diff --git a/data/config/repo/phpnet.ini b/data/config/repo/phpnet.ini
index f9d35ca..e1c53f6 100644
--- a/data/config/repo/phpnet.ini
+++ b/data/config/repo/phpnet.ini
@@ -1,3 +1,4 @@
 name=phpnet
 type=git
-url=git://git.php.net
\ No newline at end of file
+url=git://git.php.net
+gh_url=https://codeload.github.com/php/php-src
diff --git a/include/Git.php b/include/Git.php
index e9c0b86..a20702a 100644
--- a/include/Git.php
+++ b/include/Git.php
@@ -3,14 +3,16 @@ namespace rmtools;
 
 class Git {
        public $repo_url;
+       private $gh_url;
        public $module;
        public $branch;
        private $git_cmd = 'c:\apps\git\bin\git.exe';
        private $tar_cmd = 'c:\apps\git\bin\tar.exe';
 
-       public function __construct($repo_url)
+       public function __construct($repo_url, $gh_url = null)
        {
                $this->repo_url = $repo_url;
+               $this->gh_url = $gh_url;
 
                if (!file_exists($this->git_cmd)) {
                        $git_cmd = trim(shell_exec("where git.exe"));
@@ -39,12 +41,12 @@ class Git {
 
        public function export($dest, $revision = false)
        {
-               $http_url = preg_replace('/git:\/\//', 'http://', 
$this->repo_url);
                $rev = $revision ? $revision : $this->branch;
-               $url = $http_url . '/?p=' . $this->module . ';a=snapshot;h=' . 
$rev . ';sf=zip';
-               // FIXME: hack to export from Github, since snapshot downloads 
have been disabled
-               if ($this->repo_url === 'git://git.php.net') {
-                       $url = 
"https://codeload.github.com/php/php-src/zip/$rev";;
+               if (isset($this->gh_url)) {
+                       $url = $this->gh_url . '/zip/' . $rev;
+               } else {
+                       $http_url = preg_replace('/git:\/\//', 'http://', 
$this->repo_url);
+                       $url = $http_url . '/?p=' . $this->module . 
';a=snapshot;h=' . $rev . ';sf=zip';
                }
                $dest .= '.zip';
                wget($url, $dest);
diff --git a/include/Repository.php b/include/Repository.php
index 4297e3c..ac92e83 100644
--- a/include/Repository.php
+++ b/include/Repository.php
@@ -29,7 +29,7 @@ class Repository {
                                return $r;
                                break;
                        case 'git':
-                               $r = new Git($repo['url']);
+                               $r = new Git($repo['url'], 
isset($repo['gh_url']) ? $repo['gh_url'] : null);
                                return $r;
                                break;
             default:


--
PHP Webmaster List Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to