diff -r aeeba4d0dd4e -r f9bf8f84df7f install --- a/install Mon Nov 09 13:23:45 2009 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,81 +0,0 @@ -#!/usr/bin/env python - -import sys -import shutil -import os -import pwd -import subprocess -import optparse - -oparser = optparse.OptionParser() - -oparser.add_option("--prefix") -oparser.add_option("--root") -oparser.set_defaults(root="", prefix="/usr/local") -(options, args) = oparser.parse_args() - -if len(args) > 0: - oparser.print_help() - sys.exit(-1) - -# This must be run as root, because it must create an hg user. -# Normally the clean thing to do is let it fail with a permission error -# if a non-root user tries to run it, but I don't want anyone thinking -# that they can make it work as non-root by changing install paths. -# Patches for doing this more cleanly welcome of course. - -if os.getgid() != 0: - print >>sys.stderr, "Install must be run as root user" - sys.exit(-1) - -def installFiles(d, *sources): - d = options.root + d - os.makedirs(d) - for f in sources: - shutil.copy(f, d) - -installFiles(options.prefix + '/share/mercurial-server', - 'src/hg-ssh', - 'src/refresh-auth') -installFiles(options.prefix + '/share/mercurial-server/mercurialserver', - 'src/mercurialserver/__init__.py', - 'src/mercurialserver/paths.py', - 'src/mercurialserver/changes.py', - 'src/mercurialserver/access.py', - 'src/mercurialserver/servelog.py', - 'src/mercurialserver/refreshauth.py', - 'src/mercurialserver/ruleset.py') -installFiles(options.prefix + '/share/mercurial-server/init', - 'src/init/hginit', - 'src/init/dot-mercurial-server', - 'src/init/hgadmin-hgrc') -installFiles(options.prefix + '/share/doc/mercurial-server', - 'README', - 'build/html/index.html') -installFiles('/etc/mercurial-server', - 'src/init/conf/remote-hgrc', - 'src/init/conf/access.conf') -installFiles('/etc/mercurial-server/keys/root') -installFiles('/etc/mercurial-server/keys/users') - -def becomeFunc(u): - p = pwd.getpwnam(u) - def become(): - os.setgid(p.pw_gid) - os.setegid(p.pw_gid) - os.setuid(p.pw_uid) - os.seteuid(p.pw_uid) - os.chdir(p.pw_dir) - return become - -if options.root == '': - try: - pwd.getpwnam('hg') - except KeyError: - subprocess.check_call( - "adduser --system --shell /bin/sh --group --disabled-password".split() + - ["--gecos", "Mercurial repositories", "hg"]) - subprocess.check_call([options.prefix + '/share/mercurial-server/init/hginit', - options.prefix + '/share/mercurial-server'], - preexec_fn = becomeFunc('hg')) -