diff options
Diffstat (limited to 'deprecated/sheriff_rotation.py')
-rwxr-xr-x | deprecated/sheriff_rotation.py | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/deprecated/sheriff_rotation.py b/deprecated/sheriff_rotation.py deleted file mode 100755 index f6873077..00000000 --- a/deprecated/sheriff_rotation.py +++ /dev/null @@ -1,130 +0,0 @@ -#!/usr/bin/python2 -# -# Copyright 2010 Google Inc. All Rights Reserved. -"""Script to rotate the weekly team sheriff. - -This script determines who the next sheriff is, updates the file -appropriately and sends out email notifying the team. -""" - -from __future__ import print_function - -__author__ = 'asharif@google.com (Ahmad Sharif)' - -import argparse -import datetime -import os -import sys - -from cros_utils import constants -from cros_utils import email_sender - - -class SheriffHandler(object): - """Main class for handling sheriff rotations.""" - - SHERIFF_FILE = os.path.join(constants.CROSTC_WORKSPACE, 'sheriffs.txt') - SUBJECT = 'You (%s) are the sheriff for the week: %s - %s' - BODY = ('Please see instructions here: ' - 'https://sites.google.com/a/google.com/chromeos-toolchain-team-home2' - '/home/sheriff-s-corner/sheriff-duties') - - def GetWeekInfo(self, day=datetime.datetime.today()): - """Return week_start, week_end.""" - - epoch = datetime.datetime.utcfromtimestamp(0) - delta_since_epoch = day - epoch - - abs_days = abs(delta_since_epoch.days) - 2 # To get it to start from Sat. - day_of_week = abs_days % 7 - - week_begin = day - datetime.timedelta(days=day_of_week) - week_end = day + datetime.timedelta(days=(6 - day_of_week)) - - strftime_format = '%A, %B %d %Y' - - return (week_begin.strftime(strftime_format), - week_end.strftime(strftime_format)) - - def GetCurrentSheriff(self): - """Return the current sheriff.""" - return self.ReadSheriffsAsList()[0] - - def ReadSheriffsAsList(self): - """Return the sheriff file contents.""" - contents = '' - with open(self.SHERIFF_FILE, 'r') as f: - contents = f.read() - return contents.splitlines() - - def WriteSheriffsAsList(self, to_write): - with open(self.SHERIFF_FILE, 'w') as f: - f.write('\n'.join(to_write)) - - def GetRotatedSheriffs(self, num_rotations=1): - """Return the sheriff file contents.""" - sheriff_list = self.ReadSheriffsAsList() - - new_sheriff_list = [] - num_rotations = num_rotations % len(sheriff_list) - new_sheriff_list = ( - sheriff_list[num_rotations:] + sheriff_list[:num_rotations]) - return new_sheriff_list - - def Email(self): - es = email_sender.EmailSender() - current_sheriff = self.GetCurrentSheriff() - week_start, week_end = self.GetWeekInfo() - subject = self.SUBJECT % (current_sheriff, week_start, week_end) - es.SendEmail([current_sheriff], - subject, - self.BODY, - email_from=os.path.basename(__file__), - email_cc=['c-compiler-chrome']) - - -def Main(argv): - parser = argparse.ArgumentParser() - parser.add_argument('-e', - '--email', - dest='email', - action='store_true', - help='Email the sheriff.') - parser.add_argument('-r', - '--rotate', - dest='rotate', - help='Print sheriffs after n rotations.') - parser.add_argument('-w', - '--write', - dest='write', - action='store_true', - default=False, - help='Wrote rotated contents to the sheriff file.') - - options = parser.parse_args(argv) - - sheriff_handler = SheriffHandler() - - current_sheriff = sheriff_handler.GetCurrentSheriff() - week_start, week_end = sheriff_handler.GetWeekInfo() - - print('Current sheriff: %s (%s - %s)' % (current_sheriff, week_start, - week_end)) - - if options.email: - sheriff_handler.Email() - - if options.rotate: - rotated_sheriffs = sheriff_handler.GetRotatedSheriffs(int(options.rotate)) - print('Rotated sheriffs (after %s rotations)' % options.rotate) - print('\n'.join(rotated_sheriffs)) - if options.write: - sheriff_handler.WriteSheriffsAsList(rotated_sheriffs) - print('Rotated sheriffs written to file.') - - return 0 - - -if __name__ == '__main__': - retval = Main(sys.argv[1:]) - sys.exit(retval) |