You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
931 B
Python
31 lines
931 B
Python
2 weeks ago
|
import json
|
||
|
import sys
|
||
|
import os
|
||
|
import re
|
||
|
|
||
|
def FailCommit(reason):
|
||
|
print("Oh no! Bad commit! "+reason)
|
||
|
sys.exit(1)
|
||
|
|
||
|
def GetStagedFileContent(filePath):
|
||
|
cmd = 'git show :' + filePath
|
||
|
stream = os.popen(cmd)
|
||
|
return stream.read()
|
||
|
|
||
|
def GetLFSStagedFileContent(filePath):
|
||
|
cmd = f"git cat-file blob :{filePath} | git lfs smudge"
|
||
|
stream = os.popen(cmd)
|
||
|
return stream.read()
|
||
|
|
||
|
output = GetStagedFileContent('Packages/manifest.json')
|
||
|
packages = json.loads(output)['dependencies']
|
||
|
if ('com.unity.multiplayer.virtualprojects' in packages):
|
||
|
FailCommit("Virtual projects in packages")
|
||
|
if ('github' in packages['com.unity.multiplayer.tools'].lower()):
|
||
|
FailCommit("Tools using github package")
|
||
|
|
||
|
content = GetLFSStagedFileContent('ProjectSettings/ProjectSettings.asset')
|
||
|
res = re.search(r'.*cloudProjectId:.*\w+\s*\n', content) != None
|
||
|
if res:
|
||
|
FailCommit("Detected cloud project id in project settings")
|