Index: portage-2.0.51.22/bin/emerge =================================================================== --- portage-2.0.51.22.orig/bin/emerge +++ portage-2.0.51.22/bin/emerge @@ -17,61 +17,60 @@ import portage_util import portage_locks import portage_exception +class stdout_spinner: + def __init__(self): + spinner_msgs = ["Gentoo Rocks ("+os.uname()[0]+")", + "Thank you for using Gentoo. :)", + "Are you actually trying to read this?", + "How many times have you stared at this?", + "We are generating the cache right now", + "You are paying too much attention.", + "A theory is better than its explanation.", + "Phasers locked on target, Captain.", + "Thrashing is just virtual crashing.", + "To be is to program.", + "Real Users hate Real Programmers.", + "When all else fails, read the instructions.", + "Functionality breeds Contempt.", + "The future lies ahead.", + "3.1415926535897932384626433832795028841971694", + "Sometimes insanity is the only alternative.", + "Inaccuracy saves a world of explanation.", + ] + + self.spinpos = 0 + self.spinner = "/-\\|/-\\|/-\\|/-\\|\\-/|\\-/|\\-/|\\-/|" + self.update_spinner = self.update_twirl_spinner + + if "candy" in portage.settings.features: + self.spinner = spinner_msgs[int(time.time()*100)%len(spinner_msgs)] + self.update_spinner = self.update_scroll_spinner + if not sys.stdout.isatty() or ("--nospinner" in sys.argv): + self.update_spinner = self.update_basic_spinner + + def update_basic_spinner(self): + self.spinpos = (self.spinpos+1) % 500 + if (self.spinpos % 100) == 0: + if self.spinpos == 0: + sys.stdout.write(". ") + else: + sys.stdout.write(".") + sys.stdout.flush() + + def update_scroll_spinner(self): + if(self.spinpos >= len(self.spinner)): + sys.stdout.write(darkgreen(" \b\b\b"+self.spinner[len(self.spinner)-1-(self.spinpos%len(self.spinner))])) + else: + sys.stdout.write(green("\b "+self.spinner[self.spinpos])) + sys.stdout.flush() + self.spinpos = (self.spinpos+1) % (2*len(self.spinner)) + + def update_twirl_spinner(self): + self.spinpos = (self.spinpos+1) % len(self.spinner) + sys.stdout.write("\b\b "+self.spinner[self.spinpos]) + sys.stdout.flush() -spinner_msgs = ["Gentoo Rocks ("+os.uname()[0]+")", - "Thank you for using Gentoo. :)", - "Are you actually trying to read this?", - "How many times have you stared at this?", - "We are generating the cache right now", - "You are paying too much attention.", - "A theory is better than its explanation.", - "Phasers locked on target, Captain.", - "Thrashing is just virtual crashing.", - "To be is to program.", - "Real Users hate Real Programmers.", - "When all else fails, read the instructions.", - "Functionality breeds Contempt.", - "The future lies ahead.", - "3.1415926535897932384626433832795028841971694", - "Sometimes insanity is the only alternative.", - "Inaccuracy saves a world of explanation.", - ] - - -def update_basic_spinner(): - global spinner, spinpos - spinpos = (spinpos+1) % 500 - if (spinpos % 100) == 0: - if spinpos == 0: - sys.stdout.write(". ") - else: - sys.stdout.write(".") - sys.stdout.flush() - -def update_scroll_spinner(): - global spinner, spinpos - if(spinpos >= len(spinner)): - sys.stdout.write(darkgreen(" \b\b\b"+spinner[len(spinner)-1-(spinpos%len(spinner))])) - else: - sys.stdout.write(green("\b "+spinner[spinpos])) - sys.stdout.flush() - spinpos = (spinpos+1) % (2*len(spinner)) - -def update_twirl_spinner(): - global spinner, spinpos - spinpos = (spinpos+1) % len(spinner) - sys.stdout.write("\b\b "+spinner[spinpos]) - sys.stdout.flush() - -spinpos = 0 -spinner = "/-\\|/-\\|/-\\|/-\\|\\-/|\\-/|\\-/|\\-/|" -update_spinner = update_twirl_spinner -if "candy" in portage.settings.features: - spinner = spinner_msgs[int(time.time()*100)%len(spinner_msgs)] - update_spinner = update_scroll_spinner -if not sys.stdout.isatty() or ("--nospinner" in sys.argv): - update_spinner = update_basic_spinner - +spinner=stdout_spinner() if (not sys.stdout.isatty()) or (portage.settings["NOCOLOR"] in ["yes","true"]): nocolor() @@ -713,7 +712,7 @@ class search: self.searchkey=re.sub("\+\+","\+\+",self.searchkey) self.searchre=re.compile(self.searchkey.lower(),re.I) for package in portage.portdb.cp_all(): - update_spinner() + spinner.update_spinner() if match_category: match_string = package[:] @@ -915,7 +914,7 @@ class depgraph: #this conditional is needed to prevent infinite recursion on already-processed deps return 1 - update_spinner() + spinner.update_spinner() mytype,myroot,mykey=mybigkey # select the correct /var database that we'll be checking against