File: commitlog.py

package info (click to toggle)
clearsilver 0.10.5-7
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,304 kB
  • sloc: ansic: 24,586; python: 4,233; sh: 2,502; cs: 1,429; ruby: 819; java: 735; makefile: 589; perl: 120; lisp: 34; sql: 21
file content (86 lines) | stat: -rwxr-xr-x 2,131 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/usr/bin/python
# commitlog.py
#
# Written July 2001 by David W. Jeske <jeske@neotonic.com>
#
# Released freely into the public domain.
#
#  parse CVS commit logs and make nice submit logs...
#

import sys
import os
import string
import time


def main(argv):
  PATH = argv[1]
  module = argv[2]

  body = sys.stdin.read()
  body_lines = string.split(body,"\n")

  mode = 0

  mod_files = []
  add_files = []
  rem_files = []
  log_lines = []

  for a_line in body_lines:
    if a_line == "Modified Files:":
      mode = "modfiles"
    elif a_line == "Added Files:":
      mode = "addfiles"
    elif a_line == "Log Message:":
      mode = "loglines"
    elif a_line == "Removed Files:":
      mode = "remfiles"
    else:
      if mode == "modfiles":
        mod_files.append(string.strip(a_line))
      elif mode == "addfiles":
        add_files.append(string.strip(a_line))
      elif mode == "loglines":
        log_lines.append(a_line)
      elif mode == "remfiles":
        rem_files.append(string.strip(a_line))


  # if files don't exist, we should create them...

  CVS_USER = os.environ['LOGNAME']
  DATE = time.strftime( "%I:%M%p %Y/%m/%d", time.localtime(time.time()))

  log_summary = "%10s %16s %s\n" % (CVS_USER,DATE,string.join(log_lines," ")[:60])

  filename = os.path.join(PATH,"%s.summary" % module)
  os.system('co -f -q -l %s %s,v' % (filename,filename))

  # check to see if the log line is already there
  fps = open(filename,"a+")
  try:
    fps.seek(-len(log_summary),2)
    check_data = fps.read(len(log_summary))
    if check_data != log_summary:
      fps.write(log_summary)
  except IOError:
    # Not enough data to go back that far
    fps.write(log_summary)
    

  fps.close()
  os.system('ci -q -m"none" %s %s,v' % (filename,filename))

  log_data = "----------------\n" + "USER: %s\n" % CVS_USER + "DATE: %s\n" % DATE + body

  filename = os.path.join(PATH,"%s" % module)
  os.system('co -f -q -l %s %s,v' % (filename,filename))
  fp = open(filename,"a+")
  fp.write(log_data)
  fp.close()
  os.system('ci -q -m"none" %s %s,v' % (filename,filename))

if __name__ == "__main__":
  main(sys.argv)