aboutsummaryrefslogtreecommitdiff
path: root/deprecated/sheriff_rotation.py
diff options
context:
space:
mode:
Diffstat (limited to 'deprecated/sheriff_rotation.py')
-rwxr-xr-xdeprecated/sheriff_rotation.py130
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)