• Создает репозиторий
• Прописывает его в файл настроек
• Добавляет права на push в новый репозиторий Файл /opt/append.wsgi
# coding: utf-8
import sys
import os
path = os.path.dirname(__file__)
sys.path.append(path)
os.chdir(path)
def application(environ, start_response):
status = '200 OK'
output = '<form methos="GET" action="/append"><input type="text" name="new" /><input type="submit" /></form><br/>\n'
output += '<b>Projects</b><br/>\n'
ok = 0
for s in open('hgwebdir.conf','r').readlines():
s = s.rstrip()
if s=='[paths]':
ok = 1
continue
if ok==1:
d = s.split('=')
if len(d)==2: output += '<a href="/%s">%s</a><br/>\n' % (d[0],d[0])
q = environ['QUERY_STRING']
if q[:4]=='new=':
name = q[4:]
if name and not os.path.isdir(name):
os.system('hg init ' + name)
open('hgwebdir.conf','a').write('%s = /var/hg/rep/%s\n' % (name,name))
open(name+'/.hg/hgrc','a').write('\n[web]\nallow_push = *\npush_ssl = false\n')
output = 'append ok<br/>\n<a href="/append">return</a>'
response_headers = [('Content-type', 'text/html; charset=utf-8'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
Прописывем в Апач
WSGIScriptAlias /append /opt/append.wsgi
Должно работать