initial commit

This commit is contained in:
2010-01-24 14:34:03 +00:00
commit 475cfd028e
653 changed files with 134833 additions and 0 deletions

7
codepot/etc/Makefile.am Normal file
View File

@ -0,0 +1,7 @@
cfgdir=$(CFGDIR)
cfg_DATA = codepot.ini codepot.sql codepot.a2ldap
cfg_SCRIPTS = repo.sh start-commit
EXTRA_DIST = $(cfg_DATA) $(cfg_SCRIPTS)

414
codepot/etc/Makefile.in Normal file
View File

@ -0,0 +1,414 @@
# Makefile.in generated by automake 1.11 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
subdir = etc
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/codepot.a2ldap.in $(srcdir)/codepot.ini.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/ac/m4/as-ac-expand.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/./config.h
CONFIG_CLEAN_FILES = codepot.ini codepot.a2ldap
CONFIG_CLEAN_VPATH_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
am__install_max = 40
am__nobase_strip_setup = \
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
am__nobase_strip = \
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
am__nobase_list = $(am__nobase_strip_setup); \
for p in $$list; do echo "$$p $$p"; done | \
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
if (++n[$$2] == $(am__install_max)) \
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
END { for (dir in files) print dir, files[dir] }'
am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__installdirs = "$(DESTDIR)$(cfgdir)" "$(DESTDIR)$(cfgdir)"
SCRIPTS = $(cfg_SCRIPTS)
SOURCES =
DIST_SOURCES =
DATA = $(cfg_DATA)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BINDIR = @BINDIR@
CACHEDIR = @CACHEDIR@
CFGDIR = @CFGDIR@
CYGPATH_W = @CYGPATH_W@
DATADIR = @DATADIR@
DEFS = @DEFS@
DEPOTDIR = @DEPOTDIR@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LIBDIR = @LIBDIR@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LOCALSTATEDIR = @LOCALSTATEDIR@
LOGDIR = @LOGDIR@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PREFIX = @PREFIX@
RM = @RM@
SBINDIR = @SBINDIR@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
SYSCONFDIR = @SYSCONFDIR@
VERSION = @VERSION@
WWWDIR = @WWWDIR@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
am__leading_dot = @am__leading_dot@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build_alias = @build_alias@
builddir = @builddir@
cachedir = @cachedir@
cfgdir = $(CFGDIR)
datadir = @datadir@
datarootdir = @datarootdir@
depotdir = @depotdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host_alias = @host_alias@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
logdir = @logdir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
wwwdir = @wwwdir@
cfg_DATA = codepot.ini codepot.sql codepot.a2ldap
cfg_SCRIPTS = repo.sh start-commit
EXTRA_DIST = $(cfg_DATA) $(cfg_SCRIPTS)
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign etc/Makefile'; \
$(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign etc/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
codepot.ini: $(top_builddir)/config.status $(srcdir)/codepot.ini.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
codepot.a2ldap: $(top_builddir)/config.status $(srcdir)/codepot.a2ldap.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-cfgSCRIPTS: $(cfg_SCRIPTS)
@$(NORMAL_INSTALL)
test -z "$(cfgdir)" || $(MKDIR_P) "$(DESTDIR)$(cfgdir)"
@list='$(cfg_SCRIPTS)'; test -n "$(cfgdir)" || list=; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
done | \
sed -e 'p;s,.*/,,;n' \
-e 'h;s|.*|.|' \
-e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
if ($$2 == $$4) { files[d] = files[d] " " $$1; \
if (++n[d] == $(am__install_max)) { \
print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
else { print "f", d "/" $$4, $$1 } } \
END { for (d in files) print "f", d, files[d] }' | \
while read type dir files; do \
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
test -z "$$files" || { \
echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(cfgdir)$$dir'"; \
$(INSTALL_SCRIPT) $$files "$(DESTDIR)$(cfgdir)$$dir" || exit $$?; \
} \
; done
uninstall-cfgSCRIPTS:
@$(NORMAL_UNINSTALL)
@list='$(cfg_SCRIPTS)'; test -n "$(cfgdir)" || exit 0; \
files=`for p in $$list; do echo "$$p"; done | \
sed -e 's,.*/,,;$(transform)'`; \
test -n "$$list" || exit 0; \
echo " ( cd '$(DESTDIR)$(cfgdir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(cfgdir)" && rm -f $$files
install-cfgDATA: $(cfg_DATA)
@$(NORMAL_INSTALL)
test -z "$(cfgdir)" || $(MKDIR_P) "$(DESTDIR)$(cfgdir)"
@list='$(cfg_DATA)'; test -n "$(cfgdir)" || list=; \
for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
echo "$$d$$p"; \
done | $(am__base_list) | \
while read files; do \
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(cfgdir)'"; \
$(INSTALL_DATA) $$files "$(DESTDIR)$(cfgdir)" || exit $$?; \
done
uninstall-cfgDATA:
@$(NORMAL_UNINSTALL)
@list='$(cfg_DATA)'; test -n "$(cfgdir)" || list=; \
files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
test -n "$$files" || exit 0; \
echo " ( cd '$(DESTDIR)$(cfgdir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(cfgdir)" && rm -f $$files
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
dist_files=`for file in $$list; do echo $$file; done | \
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \
test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(SCRIPTS) $(DATA)
installdirs:
for dir in "$(DESTDIR)$(cfgdir)" "$(DESTDIR)$(cfgdir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-generic
dvi: dvi-am
dvi-am:
html: html-am
html-am:
info: info-am
info-am:
install-data-am: install-cfgDATA install-cfgSCRIPTS
install-dvi: install-dvi-am
install-dvi-am:
install-exec-am:
install-html: install-html-am
install-html-am:
install-info: install-info-am
install-info-am:
install-man:
install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am
install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-cfgDATA uninstall-cfgSCRIPTS
.MAKE: install-am install-strip
.PHONY: all all-am check check-am clean clean-generic distclean \
distclean-generic distdir dvi dvi-am html html-am info info-am \
install install-am install-cfgDATA install-cfgSCRIPTS \
install-data install-data-am install-dvi install-dvi-am \
install-exec install-exec-am install-html install-html-am \
install-info install-info-am install-man install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
pdf-am ps ps-am uninstall uninstall-am uninstall-cfgDATA \
uninstall-cfgSCRIPTS
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,47 @@
#
# This file contains sample configuration to enable LDAP authentication
# for subversion webdav access. The actual configuration can be more
# complex than this file depending on your requirement.
#
<Location "/svn">
DAV svn
SVNParentPath "@DEPOTDIR@/svnrepo"
# Uncomment SSLRequireSSL below to disallow non-SSL access.
# Note that SSL must be enabled site-wide to use it.
# SSLRequireSSL
AuthType Basic
AuthName "@PACKAGE@"
#
# configure authentication below
#
#
# Apache version 2.1 or later
# mod_authnz_ldap
#
AuthBasicProvider ldap
# prevent other authenticatication moudles from authenticating users
# if this one fails.
AuthzLDAPAuthoritative on
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
AuthLDAPRemoteUserIsDN off
AuthLDAPURL ldap://127.0.0.1:389/ou=users,dc=sample,dc=net?uid
AuthLDAPBindDN cn=admin,dc=sample,dc=net
AuthLDAPBindPassword xxxxxxx
Require ldap-group cn=developers,ou=groups,dc=sample,dc=net
#
# Apache version 2.0.41
# mod_auth_ldap
#
</Location>

View File

@ -0,0 +1,85 @@
;------------------------------------------------------------------------------
; banner to display when no project id is available
;------------------------------------------------------------------------------
default_banner = "@PACKAGE@"
;------------------------------------------------------------------------------
; database settings
;------------------------------------------------------------------------------
database_username =
database_password =
database_name =
database_driver =
database_prefix =
;------------------------------------------------------------------------------
; ldap settings
;------------------------------------------------------------------------------
; The userid format and the password format can contain
; ${userid} and ${password} to represent the actual user ID
; and the password respectively.
;------------------------------------------------------------------------------
ldap_server_host = "127.0.0.1"
ldap_server_port = "389"
ldap_server_protocol_version = "3"
ldap_userid_format = "${userid}"
ldap_password_format = "${password}"
;------------------------------------------------------------------------------
; language to use
;------------------------------------------------------------------------------
lang = "english"
;------------------------------------------------------------------------------
; When set to yes, viewing pages require a user to sign in.
;------------------------------------------------------------------------------
always_require_signin = "no"
;------------------------------------------------------------------------------
; Use websvn as a repository browser.
;------------------------------------------------------------------------------
enable_websvn = "no"
;------------------------------------------------------------------------------
; API base URL
;------------------------------------------------------------------------------
api_base_url = "http://127.0.0.1"
;------------------------------------------------------------------------------
; Subversion base URL
;------------------------------------------------------------------------------
; This URL depends on the webdav configuration for subversion repository.
; If you have your repository enabled with SSL under /svn, you can set this to
; https://${SERVER_NAME}/svn.
;------------------------------------------------------------------------------
svn_base_url = "http://${SERVER_NAME}:${SERVER_PORT}/svn"
;------------------------------------------------------------------------------
; Login model to use.
;------------------------------------------------------------------------------
login_model = "LdapLoginModel"
;------------------------------------------------------------------------------
; System administrator ID
;------------------------------------------------------------------------------
sysadmin_userid =
;------------------------------------------------------------------------------
; Maximum file upload size in Kbytes
;------------------------------------------------------------------------------
max_upload_size = "10000"
;------------------------------------------------------------------------------
; Maximum number of latest projects to show
;------------------------------------------------------------------------------
max_latest_projects = "10"
;------------------------------------------------------------------------------
; directory to accomodate subversion repositories
;------------------------------------------------------------------------------
svnrepo_dir = "@DEPOTDIR@/svnrepo"
;------------------------------------------------------------------------------
; directory to store uploaded files
;------------------------------------------------------------------------------
file_dir = "@DEPOTDIR@/files"

65
codepot/etc/codepot.sql Normal file
View File

@ -0,0 +1,65 @@
USE codepot;
CREATE TABLE project (
id VARCHAR(32) PRIMARY KEY,
name VARCHAR(255) UNIQUE NOT NULL,
summary VARCHAR(255) NOT NULL,
description TEXT NOT NULL,
createdon DATETIME,
updatedon DATETIME,
createdby VARCHAR(32),
updatedby VARCHAR(32)
) charset=utf8 engine=InnoDB;
CREATE TABLE project_membership (
projectid VARCHAR(32) NOT NULL,
userid VARCHAR(32) NOT NULL,
priority INTEGER NOT NULL,
UNIQUE KEY membership (projectid, userid),
CONSTRAINT membership_projectid FOREIGN KEY (projectid) REFERENCES project(id)
ON DELETE CASCADE ON UPDATE CASCADE
) charset=utf8 engine=InnoDB;
CREATE TABLE wiki (
projectid VARCHAR(32) NOT NULL,
name VARCHAR(255) NOT NULL,
text TEXT NOT NULL,
createdon DATETIME,
updatedon DATETIME,
createdby VARCHAR(32),
updatedby VARCHAR(32),
UNIQUE KEY wiki_id (projectid, name),
CONSTRAINT wiki_projectid FOREIGN KEY (projectid) REFERENCES project(id)
ON DELETE RESTRICT ON UPDATE CASCADE
) charset=utf8 engine=InnoDB;
CREATE TABLE file (
projectid VARCHAR(32) NOT NULL,
name VARCHAR(255) NOT NULL,
encname VARCHAR(255) NOT NULL,
tag VARCHAR(54) NOT NULL,
summary VARCHAR(255) NOT NULL,
md5sum CHAR(32) NOT NULL,
description TEXT NOT NULL,
createdon DATETIME,
updatedon DATETIME,
createdby VARCHAR(32),
updatedby VARCHAR(32),
UNIQUE KEY file_id (projectid, name),
UNIQUE KEY (encname),
INDEX tagged_file_id (projectid, tag, name),
CONSTRAINT file_projectid FOREIGN KEY (projectid) REFERENCES project(id)
ON DELETE RESTRICT ON UPDATE CASCADE
) charset=utf8 engine=InnoDB;

66
codepot/etc/repo.sh Executable file
View File

@ -0,0 +1,66 @@
#!/bin/sh
make_repo() {
local repodir="$1"
local reponame="$2"
local cfgdir="$3"
local api="$4"
echo "${reponame}" | grep -qF '/' && {
echo "ERROR: invalid repository name - ${reponame}"
return 1
}
mkdir -p "${repodir}" >/dev/null 2>&1 || {
echo "ERROR: cannot create directory - ${repodir}"
return 1
}
[ -d "${repodir}" -a -w "${repodir}" -a -x "${repodir}" ] || {
echo "ERROR: directory set with wrong permission - ${repodir}"
return 1;
}
#[ -f "${repodir}/start-commit" ] || {
sed "s|%API%|${api}|g" "${cfgdir}/start-commit" > "${repodir}/start-commit" || {
echo "ERROR: cannot install start-commit to ${repodir}"
return 1;
}
chmod 0755 "${repodir}/start-commit"
#}
svnadmin create "${repodir}/${reponame}" && {
oldpwd="`pwd`"
cd "${repodir}/${reponame}/hooks"
ln -sf ../../start-commit start-commit
cd "${oldpwd}"
}
return 0;
}
delete_repo() {
local repodir="$1"
local reponame="$2"
echo "${reponame}" | grep -qF '/' && {
echo "ERROR: invalid repository name - ${reponame}"
return 1
}
rm -rf "${repodir}/${reponame}"
}
case $1 in
make)
make_repo "$2" "$3" "$4" "$5"
;;
delete)
delete_repo "$2" "$3"
;;
*)
exit 1
;;
esac

21
codepot/etc/start-commit Executable file
View File

@ -0,0 +1,21 @@
#!/bin/sh
start_commit() {
local repo_path="$1"
local user="$2"
local repo="`basename "${repo_path}"`"
ans="`wget -q -O- "%API%/projectHasMember/${repo}/${user}" 2>/dev/null`"
[ "${ans}" = "YES" ] && return 0;
[ "${ans}" = "NO" ] && {
echo "${user} is not a member of ${repo}" >&2
return 1
}
echo "Critical error occurred while checking project membership of ${repo} for ${user}" >&2
return 1
}
start_commit "$1" "$2"
exit $?