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)
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
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)
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)
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)
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)
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():
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)
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)