예제 #1
0
파일: form_out.py 프로젝트: jameszhan/rhea
def edit_description(formfile, callback):
    def fetch_form_content():
        f = open(formfile, "rt")
        try:
            content = "".join(f.readlines())
            return content;
        finally:
            f.close()
        
    def save_formfile(content):
        with open(formfile, "wt") as f:
            f.writelines(content)

    def fetch_description(content):
        p = re.compile(r"^Description:\s*(.+)$", re.M)
        desc = None
        m = p.search(content)
        if(m <> None):
            desc = m.group(1)      
        return desc
    
    content = fetch_form_content()
    desc = fetch_description(content)
    expectedcomment = callback(desc) 
    if(expectedcomment <> None):
        accept = re.compile(r"^Mingle\s*#?\s*\d+\s*:.+$", re.M | re.S) 
        if(accept.match(desc) == None):
            content = content.replace(desc, expectedcomment)
            save_formfile(content)
예제 #2
0
파일: form_out.py 프로젝트: jameszhan/rhea
 def fetch_description(content):
     p = re.compile(r"^Description:\s*(.+)$", re.M)
     desc = None
     m = p.search(content)
     if(m <> None):
         desc = m.group(1)      
     return desc
예제 #3
0
def check_description(formfile):
    promptmessage = """Your description must match the following format:
            Mingle {#} id: {comments}
            Example:
            Mingle 38: Finished writing the P4 trigger to prepopulate checkin comments.
        """
    acceptpattern = re.compile(r"^Mingle\s*#?\s*\d+\s*:.+$", re.M | re.S)
    desc, content = fetch_description(formfile)
    if (acceptpattern.match(desc) == None):
        sys.exit(promptmessage)
예제 #4
0
파일: p4comment.py 프로젝트: jameszhan/rhea
def check_description(formfile):
    promptmessage = """Your description must match the following format:
            Mingle {#} id: {comments}
            Example:
            Mingle 38: Finished writing the P4 trigger to prepopulate checkin comments.
        """
    acceptpattern = re.compile(r"^Mingle\s*#?\s*\d+\s*:.+$", re.M | re.S)
    desc, content = fetch_description(formfile)
    if(acceptpattern.match(desc) == None):
        sys.exit(promptmessage)   
예제 #5
0
def fetch_description(formfile):
    def fetch_form_content():
        f = open(formfile, "rt")
        try:
            content = "".join(f.readlines())
            return content
        finally:
            f.close()

    content = fetch_form_content()
    p = re.compile(r"^Description:\s*((?:.(?!Files))+)", re.M | re.S)
    desc = None
    m = p.search(content)
    if (m <> None):
        desc = m.group(1).strip()
    return (desc, content)
예제 #6
0
파일: p4comment.py 프로젝트: jameszhan/rhea
def fetch_description(formfile):
    def fetch_form_content():
        f = open(formfile, "rt")
        try:
            content = "".join(f.readlines())
            return content;
        finally:
            f.close()
            
    content = fetch_form_content()
    p = re.compile(r"^Description:\s*((?:.(?!Files))+)", re.M | re.S)
    desc = None
    m = p.search(content)
    if(m <> None):
        desc = m.group(1).strip()      
    return (desc, content)
예제 #7
0
import sys
from P4 import P4, P4Exception
from rhea.codes.python import re

NEW_DESCRIPTION = '<enter description here>'
DESCRIPTION_TEMPLATE = 'Mingle #Num: Your comment'
GLOBAL_PATTERN = re.compile("(?<!#)\s*Description\s*:\s*([^\n]+)[\n|$]",
                            re.M | re.S)


def show_error_message(msg):
    sys.exit(msg)


def visit_p4(callback):
    p4 = P4()
    p4.port = 'localhost:1666'
    p4.client = 'james'
    try:
        p4.connect()
        return callback(p4)
    except P4Exception, ex:
        errmsg = str(ex) + "\n"
        for err in p4.errors:
            errmsg += err
        show_error_message(errmsg)
    finally:
        p4.disconnect()


def edit_description():
예제 #8
0
파일: server.py 프로젝트: jameszhan/rhea
 s.bind((SERVER_NAME, SERVER_PORT))
 s.listen(16)
 inputs = [s]
 while(True):
     rs, ws, es = select.select(inputs, [], [])
     for r in rs:
         if r is s:
             c, addr = s.accept()
             print('Got connection from', addr)
             inputs.append(c)
         else:
             try:
                 data = r.recv(1024)
                 msg = str(data)
                 print('msg=',msg)
                 pa = re.compile('.')
                 print('hello---',pa.match(msg).groups[0])
                 filename = pa.match(msg).groups[0]
                 if(filename == '/'):
                     filename = 'index.html'
                 pathname = os.getcwd() + filename
                 
                 f = open(pathname, 'rb')
                 r.send(f.read())
                 f.close()
                 
                 disconnected = not data
             except(socket.error):
                 disconnected = True
             if disconnected:
                 inputs.remove(r)
예제 #9
0
import sys
from P4 import P4, P4Exception
from rhea.codes.python import re

NEW_DESCRIPTION = '<enter description here>'
DESCRIPTION_TEMPLATE = 'Mingle #Num: Your comment'
GLOBAL_PATTERN = re.compile("(?<!#)\s*Description\s*:\s*([^\n]+)[\n|$]", re.M | re.S);

def show_error_message(msg):
    sys.exit(msg)
	
def visit_p4(callback):
    p4 = P4()
    p4.port = 'localhost:1666'
    p4.client = 'james'
    try:
        p4.connect()       
        return callback(p4)
    except P4Exception, ex:
        errmsg = str(ex) + "\n"
        for err in p4.errors:
            errmsg += err
        show_error_message(errmsg)
    finally:
        p4.disconnect()

def edit_description():
    def edit(p4):
        p4.run("change -f")
    visit_p4(edit)