#!/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()