#!/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 #------------------------------------------------------------------------------ """ This script makes sure that all Perforce users are in the limits group. """ import sys, os, string, re instance=sys.argv[1] os.system("/p4/common/bin/p4login %s" % instance) os.system("/p4/common/bin/p4master_run %s /p4/%s/bin/p4_%s group -o limits > %s_limits.txt" % (instance, instance, instance, instance)) os.system("/p4/common/bin/p4master_run %s /p4/%s/bin/p4_%s -ztag -F %%User%% users > %s_users.txt" % (instance, instance, instance, instance)) users = ("%s_users.txt" % instance) limits = ("%s_limits.txt" % instance) output = open("%s_newlimits.txt" % instance, "w") userlist = [] try: with open(users, 'r', errors='replace') as u: for user in u.readlines(): user = user.strip() if user != "": userlist.append(user) except: sys.exit(0) u.close() try: with open(limits, 'r', errors='replace') as l: for line in l.readlines(): if line != "\n": output.write(line) except: sys.exit(0) l.close() for user in userlist: output.write("\t%s\n" % user) output.close() os.system("/p4/common/bin/p4master_run %s /p4/%s/bin/p4_%s group -i < %s_newlimits.txt > /dev/null" % (instance, instance, instance, instance)) os.remove("%s_users.txt" % instance) os.remove("%s_limits.txt" % instance) os.remove("%s_newlimits.txt" % instance)