Hiding mercurial repos that are private
This commit is contained in:
parent
fd162f97fc
commit
2a020ba092
@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
# Path to repo or hgweb config to serve (see 'hg help hgweb')
|
# Path to repo or hgweb config to serve (see 'hg help hgweb')
|
||||||
# config = "/path/to/repo/or/config"
|
# config = "/path/to/repo/or/config"
|
||||||
|
import os
|
||||||
config = "/home/www/indefero/scripts/hgweb.config"
|
config = "/home/www/indefero/scripts/hgweb.config"
|
||||||
|
|
||||||
# Uncomment and adjust if Mercurial is not installed system-wide
|
# Uncomment and adjust if Mercurial is not installed system-wide
|
||||||
@ -17,4 +18,9 @@ config = "/home/www/indefero/scripts/hgweb.config"
|
|||||||
from mercurial import demandimport; demandimport.enable()
|
from mercurial import demandimport; demandimport.enable()
|
||||||
from mercurial.hgweb import hgwebdir, wsgicgi
|
from mercurial.hgweb import hgwebdir, wsgicgi
|
||||||
application = hgwebdir(config)
|
application = hgwebdir(config)
|
||||||
|
newrepos = []
|
||||||
|
for repo in application.repos:
|
||||||
|
if not os.path.isfile(repo[1] + "/.hide"):
|
||||||
|
newrepos.append(repo)
|
||||||
|
application.repos = newrepos
|
||||||
wsgicgi.launch(application)
|
wsgicgi.launch(application)
|
||||||
|
@ -178,6 +178,7 @@ class IDF_Plugin_SyncMercurial
|
|||||||
$shortname = $project->shortname;
|
$shortname = $project->shortname;
|
||||||
$hgrc_file = Pluf::f('idf_plugin_syncmercurial_path').sprintf('/%s/.hg/hgrc', $shortname);
|
$hgrc_file = Pluf::f('idf_plugin_syncmercurial_path').sprintf('/%s/.hg/hgrc', $shortname);
|
||||||
|
|
||||||
|
|
||||||
// Get allow_push list
|
// Get allow_push list
|
||||||
$allow_push = '';
|
$allow_push = '';
|
||||||
$mem = $project->getMembershipData();
|
$mem = $project->getMembershipData();
|
||||||
@ -216,6 +217,7 @@ class IDF_Plugin_SyncMercurial
|
|||||||
foreach (Pluf::factory('IDF_Project')->getList() as $project) {
|
foreach (Pluf::factory('IDF_Project')->getList() as $project) {
|
||||||
$conf = new IDF_Conf();
|
$conf = new IDF_Conf();
|
||||||
$conf->setProject($project);
|
$conf->setProject($project);
|
||||||
|
$hide_file = Pluf::f('idf_plugin_syncmercurial_path').sprintf('/%s/.hide', $project->shortname);
|
||||||
if ($project->private == true){
|
if ($project->private == true){
|
||||||
$mem = $project->getMembershipData();
|
$mem = $project->getMembershipData();
|
||||||
$user = '';
|
$user = '';
|
||||||
@ -236,6 +238,13 @@ class IDF_Plugin_SyncMercurial
|
|||||||
$fcontent .= sprintf('AuthUserFile %s', Pluf::f('idf_plugin_syncmercurial_passwd_file'))."\n";
|
$fcontent .= sprintf('AuthUserFile %s', Pluf::f('idf_plugin_syncmercurial_passwd_file'))."\n";
|
||||||
$fcontent .= sprintf('Require user %s', $user)."\n";
|
$fcontent .= sprintf('Require user %s', $user)."\n";
|
||||||
$fcontent .= '</Location>'."\n\n";
|
$fcontent .= '</Location>'."\n\n";
|
||||||
|
try {
|
||||||
|
file_put_contents($hide_file, ' ');
|
||||||
|
} catch (Exception $e) { }
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
unlink($hide_file);
|
||||||
|
} catch (Exception $e) { }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_put_contents($private_file, $fcontent, LOCK_EX);
|
file_put_contents($private_file, $fcontent, LOCK_EX);
|
||||||
|
Loading…
Reference in New Issue
Block a user