~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to scripts/svnlogservice

  • Committer: mattgiuca
  • Date: 2008-07-15 09:18:02 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:877
pulldown_subj/__init__.py: Added "enrol_user" function which pulls down a user
    and also enrols them in the database.
Added script enrolallusers.py which scriptulously performs automatic
enrolments of all users in the system, similar to remakeallusers.

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
 
26
26
import os
27
27
import time
28
 
import cgi
29
28
import pysvn
30
29
 
31
 
import common.cgirequest
32
 
import common.util
33
 
import common.date
34
 
import common.svn
 
30
from common import cgirequest
35
31
 
36
 
req = common.cgirequest.CGIRequest()
 
32
req = cgirequest.CGIRequest()
37
33
req.install_error_handler()
38
34
req.content_type = "text/html"
39
35
 
40
36
req.write('<h1>Subversion Log</h1>\n')
41
37
 
42
 
r_str = req.get_fieldstorage().getfirst("r")
43
 
sr = common.svn.revision_from_string(r_str)
44
 
 
45
 
def pretty_path(cpath, revno=None):
46
 
    path = cpath['path']
47
 
    # XXX: We can't assume that the repository root is always equivalent to
48
 
    #      the current user's home directory, although it does work for our
49
 
    #      current setup.
50
 
    url = common.util.make_path(os.path.join('files',
51
 
                                    common.util.split_path(req.path)[0],
52
 
                                    path[1:]))
53
 
    if revno:
54
 
        url += '?r=%d' % revno
55
 
    return '%s <a href="%s">%s</a>' % (cpath['action'], cgi.escape(url, True),
56
 
                                       cgi.escape(path))
57
 
 
58
 
def pretty_paths(paths, revno=None):
 
38
 
 
39
def pretty_time(epochtime):
 
40
    return time.asctime(time.localtime(epochtime))
 
41
 
 
42
def pretty_path(path):
 
43
    return '%s %s' % (path['action'], path['path'])
 
44
 
 
45
def pretty_paths(paths):
59
46
    output = '<ul>'
60
47
    for path in paths:
61
 
        output += '<li>' + pretty_path(path, revno) + '</li>'
 
48
        output += '<li>' + pretty_path(path) + '</li>'
62
49
    output += '</ul>'
63
50
    return output
64
51
 
65
52
def pretty_log(log):
66
 
    revno = log.revision.number
67
 
    author = cgi.escape(log.author)
68
 
    message = cgi.escape(log.message)
69
 
    result = '''
 
53
    return '''
70
54
<div class="svnlogentry">
71
55
        <div class="svnloginfo">
72
 
                Revision <a href="%s?r=%d" style="font-weight: bold">%d</a>
73
 
                by <strong>%s</strong> on <strong>%s</strong>
74
 
''' % (cgi.escape(common.util.make_path(os.path.join('files', req.path))),
75
 
       revno, revno, author, common.date.make_date_nice(log.date))
76
 
 
77
 
    # Now we get ugly. We need to sometimes present [select] and [diff] links.
78
 
    if sr and sr.kind == pysvn.opt_revision_kind.number and sr.number == revno:
79
 
        result += '[selected]'
80
 
    else:
81
 
        result += '<a href="%s?r=%d">[select]</a>' % (
82
 
              cgi.escape(common.util.make_path(os.path.join('svnlog', req.path))),
83
 
              revno)
84
 
    if sr and sr.kind == pysvn.opt_revision_kind.number:
85
 
        result += ' <a href="%s?r=%d&r=%d">[diff]</a>' % (
86
 
              cgi.escape(common.util.make_path(os.path.join('diff', req.path))),
87
 
              sr.number, revno)
88
 
 
89
 
    result += '''
 
56
                Revision <strong>%d</strong> by <strong>%s</strong> on <strong>%s</strong>
90
57
        </div>
91
58
        <pre>%s</pre>
92
59
        <hr size="1"/>
94
61
        <div class="svnlogpathlist">
95
62
        %s
96
63
        </div>
97
 
</div>''' % (message, pretty_paths(log.changed_paths, log.revision.number))
98
 
    return result
 
64
</div>''' % (log.revision.number, log.author, pretty_time(log.date),
 
65
             log.message, pretty_paths(log.changed_paths))
99
66
 
100
67
try:
101
68
    client = pysvn.Client()