4 * Fork a remote repository.
5 * Displays a URL selection form when multiple git urls have been found
7 require_once 'www-header.php';
11 if (isset($_REQUEST['remote_url'])) {
12 if (substr($_REQUEST['remote_url'], 0, 9) == 'web+fork:') {
13 $_REQUEST['remote_url'] = substr($_REQUEST['remote_url'], 9);
16 $fr = new ForkRemote($_REQUEST['remote_url']);
17 if (false === $fr->parse()) {
20 } else if (false !== ($gitUrl = $fr->getUniqueGitUrl())) {
21 if (isset($_POST['orig_url'])) {
22 $fr->setUrl($_POST['orig_url']);
24 $forker = new Forker();
26 $new = $forker->forkRemote(
27 $gitUrl['url'], $fr->getUrl(), $gitUrl['title']
29 FlashMessage::save('Remote paste has been forked');
30 redirect($new->getLink('display', null, true));
31 } catch (\Exception $e) {
32 $error = $e->getMessage();
36 $urls = $fr->getGitUrls();
41 if (is_array($urls)) {
42 foreach ($urls as $group) {
44 if (count($group) > 1) {
45 $selsize += count($group);
53 'remote_url' => isset($_REQUEST['remote_url']) ? $_REQUEST['remote_url'] : '',
56 'urlselsize' => $selsize,