#!/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: update-changes.py [instance] file_containing_list_of_changes instance defaults to 1 if not given. This script simply forces an update on all changelists in the file passed in. The SetCFOptions-forced.py trigger adds the Type: restricted field on the update. Generate changes file with: p4 changes | cut -d " " -f 2 > changes.txt """ USAGE = """ Usage: update-changes.py [instance] textfile should be a file containing 1 changelist number per line. instance defaults to 1 if not given. """ import os import re import string import sys import time import platform import ConfigParser if len(sys.argv) > 2: 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')) P4BIN = os.getenv ('P4BIN', 'p4') if platform.system() == "Windows": p4="p4.exe -p %s -u %s" % (server, p4user) else: p4="%s -p %s -u %s" % (P4BIN, server, p4user) os.system('echo %s| %s login' % (passwd, p4)) if len(sys.argv) < 2: print (USAGE) sys.exit(1) # Handle optional instance parameter shift. if len(sys.argv) > 2: changes_file = sys.argv[2] else: changes_file = sys.argv[1] try: input = open(changes_file, "r" ) except: print("Unable to open file %s." % changes_file ) sys.exit (2) for line in input.readlines(): line = line.rstrip() line = '%s change -o "%s" > temp.txt' % (p4, line) os.system (line) os.system ('%s change -f -i < temp.txt' % p4) input.close() os.remove('temp.txt')