#!/usr/bin/env python """ This script will delete clients from the unload depot not accessed since the weeks parameter specified in maintenance.cfg. """ # Python 2.7/3.3 compatibility. from __future__ import print_function import os import re import sys import unloadaccessdates import sdputils if len(sys.argv) > 1: SDP_INSTANCE = str(sys.argv[1]) else: SDP_INSTANCE = '1' utils = sdputils.SDPUtils(SDP_INSTANCE) p4 = utils.p4 utils.login() cfgweeks = int(utils.get('deleteweeks')) def unload_clients(): unloadaccessdates.createlist("clients", "client", cfgweeks) input = open("unload_clients.txt", "r") for line in input.readlines(): line = line.strip() line = re.sub("\$", "\\\$", line) line = '%s client -fd "%s"' % (p4, line) os.system(line) input.close() unloadaccessdates.createlist("clients", "client", cfgweeks) input = open("unload_clients.txt", "r") for line in input.readlines(): line = line.strip() line = re.sub("\$", "\\\$", line) os.system('%s -Ztag changes -s shelved -c %s > shelved.txt' % (p4, line)) if os.path.isfile("shelved.txt"): shelvedfile = open("shelved.txt", "r") for changeline in shelvedfile.readlines(): if re.search("\.\.\. change ", changeline): changenum = changeline[11:] changenum = changenum.strip() os.system('%s shelve -c %s -df' % (p4, changenum)) shelvedfile.close() line = '%s client -fd "%s"' % (p4, line) os.system(line) input.close() ############################################################################### # main if __name__ == '__main__': unload_clients()