clean_protect.py #4

  • //
  • guest/
  • perforce_software/
  • sdp/
  • main/
  • Maintenance/
  • clean_protect.py
  • View
  • Commits
  • Open Download .zip Download (2 KB)
#!/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:
	python protect_groups.py remove_groups.txt p4.protect

This script will drop all lines in the protect tabel that have a group referenced from the file
groups.txt passed into the script. The list of groups to drop is passed in as the first parameter
and the protect table is passed in as the 2nd parameter.

remove_groups.txt is generated using protect_groups.py - See that script for details.

Run "p4 protect -o > p4.protect" to generate the protections table.

You can redirect the output of this script to a file called new.p4.protect and then you can compare
the original p4.protect and the new.p4.protect. If everything looks okay, you can update the protections
table by running:

p4 protect -i < new.p4.protect

"""

import re
import sys


def main():
    p4groups = []

    groups = open(sys.argv[1], "r")
    protect = open(sys.argv[2], "r")

    for group in groups.readlines():
        group = group.rstrip()
        group = group.lower()
        p4groups.append(group)

    for line in protect.readlines():
        line = line.rstrip()
        origline = line
        line = line.lower()
        match = re.match(".*group (.*) \* .*", line)
        if match:
            if match.group(1).lower() in p4groups:
                continue
            else:
                print(origline)
        else:
            print(origline)

    groups.close()
    protect.close()


###############################################################################
# main
if __name__ == "__main__":
    main()
# Change User Description Committed
#6 27331 C. Thomas Tyler Released SDP 2020.1.27325 (2021/01/29).
Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'.
#5 26161 C. Thomas Tyler Released SDP 2019.3.26159 (2019/11/06).
Copy Up using 'p4 copy -r -b perforce_software-sdp-dev'.
#4 16581 Robert Cowham Standardised processing and formatting.
Made python 2/3 compatible.
These need automated testing!
#3 15856 C. Thomas Tyler Replaced the big license comment block with a shortened
form referencing the LICENSE file included with the SDP
package, and also by the URL for the license file in
The Workshop.
#2 11524 Russell C. Jackson (Rusty) Released updated version of the SDP from Dev.
#1 10148 C. Thomas Tyler Promoted the Perforce Server Deployment Package to The Workshop.