#!/usr/bin/env python #============================================================================== # Copyright and license info is available in the LICENSE file included with # the Server Deployment Package (SDP), and also available online: # https://swarm.workshop.perforce.com/projects/perforce-software-sdp/view/main/LICENSE #------------------------------------------------------------------------------ """ 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: SDP_INSTANCE = str(sys.argv[1]) else: SDP_INSTANCE = '1' config = ConfigParser.RawConfigParser() config.read('maintenance.cfg') ########################################################################## ##### ##### ##### CONFIGURATION VARIABLES: Modify in maintenance.cfg as needed. ##### ##### ##### server = (config.get(SDP_INSTANCE, 'server')) p4user = (config.get(SDP_INSTANCE, 'p4user')) passwd = (config.get(SDP_INSTANCE, '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" )