Added run-scm for fedora-hosted stuff
This commit is contained in:
parent
d60c65ede0
commit
24c60d483a
4 changed files with 68 additions and 0 deletions
5
scripts/run-scm/run-bzr
Executable file
5
scripts/run-scm/run-bzr
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
umask 0002
|
||||
exec /usr/bin/bzr "$@"
|
||||
|
54
scripts/run-scm/run-git
Executable file
54
scripts/run-scm/run-git
Executable file
|
@ -0,0 +1,54 @@
|
|||
#!/usr/bin/python -tt
|
||||
|
||||
import sys, os
|
||||
|
||||
commands = {
|
||||
"git-receive-pack": "/usr/bin/git-receive-pack",
|
||||
"git-upload-pack": "/usr/bin/git-upload-pack",
|
||||
"bzr": "/usr/bin/run-bzr",
|
||||
"hg": "/usr/bin/run-hg",
|
||||
"svnserve": "/usr/bin/run-svnserve",
|
||||
"scp": "/usr/bin/scp",
|
||||
}
|
||||
|
||||
if __name__ == '__main__':
|
||||
orig_cmd = os.environ.get('SSH_ORIGINAL_COMMAND')
|
||||
if not orig_cmd:
|
||||
print "Need a command"
|
||||
sys.exit(1)
|
||||
allargs = orig_cmd.split()
|
||||
try:
|
||||
basecmd = os.path.basename(allargs[0])
|
||||
cmd = commands[basecmd]
|
||||
except:
|
||||
sys.stderr.write("Invalid command %s\n" % orig_cmd)
|
||||
sys.exit(2)
|
||||
|
||||
if basecmd in ('git-receive-pack', 'git-upload-pack'):
|
||||
# git repositories need to be parsed specially
|
||||
thearg = ' '.join(allargs[1:])
|
||||
if thearg[0] == "'" and thearg[-1] == "'":
|
||||
thearg = thearg.replace("'","")
|
||||
thearg = thearg.replace("\\'", "")
|
||||
if thearg[:len('/git/')] != '/git/' or not os.path.isdir(thearg):
|
||||
print "Invalid repository %s" % thearg
|
||||
sys.exit(3)
|
||||
allargs = [thearg]
|
||||
elif basecmd in ('scp'):
|
||||
thearg = ' '.join(allargs[1:])
|
||||
if thearg.find('/') != -1:
|
||||
print "scp yourfile-1.2.tar.gz scm.fedorahosted.org:$YOURPROJECT # No trailing /"
|
||||
sys.exit(4)
|
||||
else:
|
||||
newargs = []
|
||||
newargs.append(allargs[0])
|
||||
newargs.append(allargs[1])
|
||||
newargs.append("/srv/web/releases/%s/" % allargs[2])
|
||||
os.execv(cmd, [cmd] + newargs[1:])
|
||||
sys.exit(1)
|
||||
else:
|
||||
allargs = allargs[1:]
|
||||
os.execv(cmd, [cmd] + allargs)
|
||||
sys.exit(1)
|
||||
|
||||
|
5
scripts/run-scm/run-hg
Executable file
5
scripts/run-scm/run-hg
Executable file
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
umask 0002
|
||||
exec /usr/bin/hg "$@"
|
||||
|
4
scripts/run-scm/run-svnserve
Executable file
4
scripts/run-scm/run-svnserve
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
umask 0002
|
||||
exec /usr/bin/svnserve -t
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue