Part of #6: atom feed for new pastes
[phorkie.git] / www / fork-remote.php
1 <?php
2 namespace phorkie;
3 /**
4  * Fork a remote repository.
5  * Displays a URL selection form when multiple git urls have been found
6  */
7 require_once 'www-header.php';
8
9 $error = null;
10 $urls  = null;
11 if (isset($_POST['remote_url'])) {
12     $fr = new ForkRemote($_POST['remote_url']);
13     if (false === $fr->parse()) {
14         //no url found
15         $error = $fr->error;
16     } else if (false !== ($gitUrl = $fr->getUniqueGitUrl())) {
17         if (isset($_POST['orig_url'])) {
18             $fr->setUrl($_POST['orig_url']);
19         }
20         $forker = new Forker();
21         $new    = $forker->forkRemote($gitUrl, $fr->getUrl());
22         redirect($new->getLink('display'));
23     } else {
24         //multiple urls found
25         $urls = $fr->getGitUrls();
26     }
27 }
28
29 $selsize = 0;
30 if (is_array($urls)) {
31     foreach ($urls as $group) {
32         ++$selsize;
33         if (count($group) > 1) {
34             $selsize += count($group);
35         }
36     }
37 }
38
39 render(
40     'fork-remote',
41     array(
42         'remote_url' => isset($_POST['remote_url']) ? $_POST['remote_url'] : '',
43         'error'      => $error,
44         'urls'       => $urls,
45         'urlselsize' => $selsize,
46     )
47 );
48 ?>