#!/usr/bin/python #------------------------------------------------------------------------------ # Copyright (c) 2007-2014 Perforce Software, Inc. Provided for use as defined in # the Perforce Consulting Services Agreement. #------------------------------------------------------------------------------ """ Usage: describe_shelves.py This script will describe all the shelves on the server. It is used to cause a replica server to pull all of the shelved files to the replica. """ import os import re import string import sys import time import platform import ConfigParser if len(sys.argv) > 1: P4INSTANCE = str(sys.argv[1]) else: P4INSTANCE = '1' config = ConfigParser.RawConfigParser() config.read('maintenance.cfg') ########################################################################## ##### ##### ##### CONFIGURATION VARIABLES: Modify in maintenance.cfg as needed. ##### ##### ##### server = (config.get(P4INSTANCE, 'server')) p4user = (config.get(P4INSTANCE, 'p4user')) passwd = (config.get(P4INSTANCE, 'passwd')) if platform.system() == "Windows": p4="p4.exe -p %s -u %s" % (server, p4user) else: p4="/p4/1/bin/p4_1 -p %s -u %s" % (server, p4user) os.system('echo %s| %s login' % (passwd, p4)) os.system( "%s changes -s shelved > shelved.txt" % p4 ) input = open( "shelved.txt", "r" ) for line in input.readlines(): line = line.rstrip() line = re.sub( r"^Change", r"%s describe -S" % p4, line ) line = re.sub( r" on .*", "", line ) os.system(line) input.close() os.remove( "shelved.txt" )