#!/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 users > %s_users.txt" % (instance, instance, instance, instance))

users = open("%s_users.txt" % instance, "r")

limits = open("%s_limits.txt" % instance, "r")
output = open("%s_newlimits.txt" % instance, "w")

userlist = []

for user in users.readlines():
        user = re.sub( r"<.*", r"", user )
        user = user.strip()
        if user != "":
                userlist.append(user)

users.close()

for line in limits.readlines():
        if line != "\n":
                output.write(line)

limits.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)


