2019-08-01 17:50:55 +02:00

69 lines
2.2 KiB
Executable file

from setuptools import setup, find_packages
import os
def _subdir_contents(path):
for toplevel in os.listdir(path):
toplevel_path = os.path.join(path, toplevel)
if not os.path.isdir(toplevel_path):
for dirpath, dirnames, filenames in os.walk(toplevel_path):
for filename in filenames:
full_path = os.path.join(dirpath, filename)
if not full_path.startswith(path+'/'):
raise RuntimeError()
yield full_path[len(path)+1:]
def subdir_contents(path):
return list(_subdir_contents(path))
name = "gitosis",
version = "0.2",
packages = find_packages(),
author = "Tommi Virtanen",
author_email = "",
description = "software for hosting git repositories",
long_description = """
Manage git repositories, provide access to them over SSH, with tight
access control and not needing shell accounts.
gitosis aims to make hosting git repos easier and safer. It manages
multiple repositories under one user account, using SSH keys to
identify users. End users do not need shell accounts on the server,
they will talk to one shared account that will not let them run
arbitrary commands.
license = "GPL",
keywords = "git scm version-control ssh",
url = "",
entry_points = {
'console_scripts': [
'gitosis-serve =',
'gitosis-run-hook =',
'gitosis-init =',
'gitosis-authorized-principals =',
package_data = {
# this seems to be the only way to convince setuptools
# to include things recursively
'gitosis.templates': subdir_contents('gitosis/templates'),
# templates need to be a real directory, for git init
# setuptools 0.6a9 will have a non-executeable post-update
# hook, this will make gitosis-admin settings not update
# (fixed in 0.6c5, maybe earlier)