diff options
author | Erik Fonnesbeck <efonnes@gmail.com> | 2010-04-29 03:02:10 -0600 |
---|---|---|
committer | Erik Fonnesbeck <efonnes@gmail.com> | 2010-04-29 03:02:10 -0600 |
commit | b696422827193d3f165e077f2b56e575022fd553 (patch) | |
tree | ef22a62e5842c37f8e0cde4735848e7eea1b313e /etc/phpshellsessions/gitsync | |
parent | ecac770c1a1faa0a4be31e7d45f0e51b765f4d59 (diff) | |
download | pfsense-b696422827193d3f165e077f2b56e575022fd553.zip pfsense-b696422827193d3f165e077f2b56e575022fd553.tar.gz |
Add gitsync support for merging from other repositories.
Diffstat (limited to 'etc/phpshellsessions/gitsync')
-rw-r--r-- | etc/phpshellsessions/gitsync | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/etc/phpshellsessions/gitsync b/etc/phpshellsessions/gitsync index d49ac65..e67452b 100644 --- a/etc/phpshellsessions/gitsync +++ b/etc/phpshellsessions/gitsync @@ -97,6 +97,21 @@ if(!$found) { } } +$merge_repos = array(); +if(!$command_split[2] && !$argv[3]) { + do { + echo "\nAdd a custom RCS branch URL (HTTP) to merge in or press enter for none.\n\n"; + $merge_repo = readline("> "); + if(!empty($merge_repo)) { + $merge_branch = readline("Merge which branch [master]? "); + if($merge_branch == "") + $merge_repos[] = array('repo' => $merge_repo, 'branch' => 'master'); + else if($merge_branch) + $merge_repos[] = array('repo' => $merge_repo, 'branch' => $merge_branch); + } + } while(!empty($merge_repo)); +} + if($branch == "RESTORE" && $g['platform'] == "pfSense") { if(!file_exists("/root/cvssync_backup.tgz")) { echo "Sorry, we could not find a previous CVSSync backup file.\n"; @@ -149,6 +164,17 @@ if(is_dir("$CODIR/pfSenseGITREPO/pfSenseGITREPO")) { } } +foreach($merge_repos as $merge_repo) { + echo "===> Merging branch {$merge_repo['branch']} from {$merge_repo['repo']}\n"; + exec("cd $CODIR/pfSenseGITREPO/pfSenseGITREPO && git pull {$merge_repo['repo']} {$merge_repo['branch']}", $output_str, $ret); + unset($output_str); + if($ret <> 0) { + echo "\nMerge failed. Aborting sync.\n\n"; + run_cmds($git_cmd); + exit; + } +} + exec("mkdir -p /tmp/lighttpd/cache/compress/"); // Nuke CVS and pfSense tarballs |