# Copyright (c) 2010, Nathaniel Theis import pexpect, re, fcntl, os, sys #Define some handy things (regexes, strings, etc) trackmatcher = re.compile(r"Track\s(?P\d+):\s(?P[A-Za-z]+)" + r"\W+(?P\d+\s[MmKkGg]B)\s*(?P\(\d+" + r":\d+\.\d+\))?") totalmatcher = re.compile(r"Total size:\s*(?P\d+\s[MmKkGg]B)\s+" + r"(?P\(\d+:\d+\.\d+\))\s=\s(?P\d+)\ssectors") writestartmatcher = re.compile(r"0\sseconds.\sOperation\sstarts.") trackstartmatcher = re.compile(r"Starting\snew\strack\sat\ssector:\s+" +r"(?P\d+)") trackprogressmatcher = re.compile(r"\rTrack\s(?P\d+):\s+(" + r"?P\d+)\sof\s+(?P\d+)\s" + r"(?P[MmKkGg]B)\swritten" + r"(\s\(fifo\s+(?P\d+)+%\)\s+)?" + r"(\[buf\s+(?P\d+)%\]\s+)?" + r"((?P\d+\.\d+)x)?") trackdonematcher = re.compile(r"Track\s(?P\d+):\sTotal\sbytes" + r"\sread/written:\s(?P\d+)/" + r"(?P\d+)\s\((?P\d+)\s" + r"sectors\)\.") fixatestartmatcher = re.compile(r"Fixating...") fixatedonematcher = re.compile(r"Fixating\stime:\s+(?P