Changeset 91

Show
Ignore:
Timestamp:
2009年08月23日 12时12分00秒 (3 years ago)
Author:
jiangx
Message:

sync hook1.5 init script with hook1.4

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/pysvnmanager/hooks/init/hook1.4/scripts/commit_log_check.py

    r47 r91  
    7979            opt_size = int(arg) 
    8080        elif opt in ("-p", "--permit"): 
     81            if arg and not isinstance(arg, unicode): 
     82                arg = unicode(arg, 'utf-8') 
    8183            if arg: 
    82                 if not isinstance(arg, unicode): 
    83                     arg = unicode(arg, 'utf-8') 
    8484                opt_permit_pattern.append(arg) 
    8585        elif opt in ("-P", "--prohibit"): 
     
    8989                opt_prohibit_pattern.append(arg) 
    9090        elif opt in ("-m", "--message"): 
    91             if not isinstance(arg, unicode): 
    92                 arg = unicode(arg, 'utf-8') 
    93             log_msg = arg 
     91            if arg: 
     92                if not isinstance(arg, unicode): 
     93                    arg = unicode(arg, 'utf-8') 
     94                log_msg = arg 
    9495        else: 
    9596            return usage(1) 
     
    104105        log_cmd = '%s log -t "%s" "%s"' % (SVNLOOK, txn, repos) 
    105106        log_msg = os.popen(log_cmd, 'r').read().rstrip('\n') 
    106     
     107 
    107108    # Check the length of commit log 
    108109    check_strlen(log_msg, opt_size) 
     
    142143     
    143144    if log_length < size: 
    144         sys.stderr.write ("提交说明至少应包含 %d 个字符, " 
    145             "或者太简单了。\n" % size) 
     145        error_msg = u"提交说明至少应包含 %d 个字符, 或者太简单了。\n" % size 
     146        sys.stderr.write (error_msg.encode('utf-8')) 
    146147        sys.exit(1) 
    147148 
     
    154155    if permit: 
    155156        matched = False 
    156     else: 
    157         matched = True 
     157        for pat in permit: 
     158            if not pat: # blank pattern 
     159                matched = True 
     160                break 
     161            elif re.compile(pat, re.I).search(log_msg): 
     162                matched = True 
     163                break 
     164        if not matched: 
     165            error_msg = u"无法在提交说明中匹配表达式: \n%s。\n" % ',\n'.join(permit) 
     166            sys.stderr.write (error_msg.encode('utf-8')) 
     167            sys.exit(1) 
    158168 
    159     for pat in permit: 
    160         if pat and re.compile(pat, re.I).search(log_msg): 
    161             matched = True 
    162             break 
    163  
    164     if not matched: 
    165         error_msg = u"无法在提交说明中匹配表达式: \n%s。\n" % ',\n'.join(permit) 
    166         sys.stderr.write (error_msg.encode('utf-8')) 
    167         sys.exit(1) 
    168  
    169     for pat in prohibit: 
    170         if pat and re.compile(pat, re.I).search(log_msg): 
    171             matched = False 
    172             break 
    173  
    174     if not matched: 
    175         error_msg = u"不允许在log中出现类似表达式: \n%s。\n" % pat 
    176         sys.stderr.write (error_msg.encode('utf-8')) 
    177         sys.exit(1) 
    178  
     169    if prohibit: 
     170        matched = False 
     171        for pat in prohibit: 
     172            if pat and re.compile(pat, re.I).search(log_msg): 
     173                matched = True 
     174                break 
     175        if matched: 
     176            error_msg = u"不允许在log中出现类似表达式: \n%s。\n" % pat 
     177            sys.stderr.write (error_msg.encode('utf-8')) 
     178            sys.exit(1) 
    179179 
    180180if __name__ == '__main__': 
    181181    main() 
     182 
     183# vim: ft=python ts=4 sw=4 et