Mercurial > hg > soundsoftware-site
changeset 1576:d1de6986e429 dockerise
Scripts to run the Hg repos
author | Chris Cannam |
---|---|
date | Fri, 04 Aug 2017 11:24:54 +0100 |
parents | 42618fc5ab46 |
children | e38eee2e1d47 |
files | extra/soundsoftware/dockertest/Dockerfile extra/soundsoftware/dockertest/code.conf extra/soundsoftware/dockertest/hgweb.config extra/soundsoftware/dockertest/index.cgi |
diffstat | 4 files changed, 85 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/extra/soundsoftware/dockertest/Dockerfile Fri Aug 04 10:51:31 2017 +0100 +++ b/extra/soundsoftware/dockertest/Dockerfile Fri Aug 04 11:24:54 2017 +0100 @@ -62,6 +62,16 @@ RUN find /var/www/code -type d -exec chmod g+s \{\} \; +# Initialise /var/hg (in reality this would be mounted from somewhere) + +RUN mkdir -p /var/hg +RUN chown code.www-data /var/hg +RUN chmod g+s /var/hg +COPY extra/soundsoftware/dockertest/index.cgi /var/hg/ +COPY extra/soundsoftware/dockertest/hgweb.config /var/hg/ +RUN chmod +x /var/hg/index.cgi + + # We're based in the code webapp directory from here on WORKDIR /var/www/code
--- a/extra/soundsoftware/dockertest/code.conf Fri Aug 04 10:51:31 2017 +0100 +++ b/extra/soundsoftware/dockertest/code.conf Fri Aug 04 11:24:54 2017 +0100 @@ -61,7 +61,8 @@ SoundSoftwareDbUser "code" SoundSoftwareDbPass "INSERT_POSTGRES_PASSWORD_HERE" SoundSoftwareRepoPrefix "/var/hg/" - SoundSoftwareSslRequired "on" + #!!! "on" in production please!: + SoundSoftwareSslRequired "off" Options +ExecCGI AddHandler cgi-script .cgi ExpiresDefault now
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extra/soundsoftware/dockertest/hgweb.config Fri Aug 04 11:24:54 2017 +0100 @@ -0,0 +1,6 @@ +[paths] +/ = /var/hg/* + +[web] +allow_archive = gz, zip, bz2 +allow_push = *
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/extra/soundsoftware/dockertest/index.cgi Fri Aug 04 11:24:54 2017 +0100 @@ -0,0 +1,67 @@ +#!/usr/bin/env python +# +# An example CGI script to export multiple hgweb repos, edit as necessary + +# adjust python path if not a system-wide install: +#import sys +#sys.path.insert(0, "/path/to/python/lib") + +# enable importing on demand to reduce startup time +from mercurial import demandimport; demandimport.enable() + +# Uncomment to send python tracebacks to the browser if an error occurs: +import cgitb +cgitb.enable() + +# If you'd like to serve pages with UTF-8 instead of your default +# locale charset, you can do so by uncommenting the following lines. +# Note that this will cause your .hgrc files to be interpreted in +# UTF-8 and all your repo files to be displayed using UTF-8. +# +import os +os.environ["HGENCODING"] = "UTF-8" + +from mercurial.hgweb.hgwebdir_mod import hgwebdir +import mercurial.hgweb.wsgicgi as wsgicgi + +# The config file looks like this. You can have paths to individual +# repos, collections of repos in a directory tree, or both. +# +# [paths] +# virtual/path1 = /real/path1 +# virtual/path2 = /real/path2 +# virtual/root = /real/root/* +# / = /real/root2/* +# virtual/root2 = /real/root2/** +# +# [collections] +# /prefix/to/strip/off = /root/of/tree/full/of/repos +# +# paths example: +# +# * First two lines mount one repository into one virtual path, like +# '/real/path1' into 'virtual/path1'. +# +# * The third entry mounts every mercurial repository found in '/real/root' +# in 'virtual/root'. This format is preferred over the [collections] one, +# since using absolute paths as configuration keys is not supported on every +# platform (especially on Windows). +# +# * The fourth entry is a special case mounting all repositories in +# /'real/root2' in the root of the virtual directory. +# +# * The fifth entry recursively finds all repositories under the real root, +# and mounts them using their relative path (to given real root) under the +# virtual root. +# +# collections example: say directory tree /foo contains repos /foo/bar, +# /foo/quux/baz. Give this config section: +# [collections] +# /foo = /foo +# Then repos will list as bar and quux/baz. +# +# Alternatively you can pass a list of ('virtual/path', '/real/path') tuples +# or use a dictionary with entries like 'virtual/path': '/real/path' + +application = hgwebdir('hgweb.config') +wsgicgi.launch(application)