This repository was archived by the owner on Nov 12, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathpre-commit
More file actions
executable file
·116 lines (89 loc) · 2.98 KB
/
pre-commit
File metadata and controls
executable file
·116 lines (89 loc) · 2.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#!/usr/bin/python
import os
import re
import subprocess
import sys
import glob
from os.path import basename
DIR = os.path.dirname(os.path.realpath(__file__))
def start():
unityAssetFolder = DIR + "/../../Assets/"
result = True
result = check_files()
if not result:
sys.exit(1)
sys.exit(0)
def check_files():
addedAndDeleted = subprocess.check_output('git diff --cached --name-only --diff-filter=ARD'.split())
result = True
files = addedAndDeleted.split('\n')
for singleFile in files:
if singleFile == '':
continue
isInUnityAssetsDirectory = singleFile.startswith("Assets/")
if not isInUnityAssetsDirectory:
continue
isMetaFile = singleFile.endswith(".meta")
if isMetaFile:
fileNameWithoutMeta = singleFile.replace(".meta", "");
metaFilePointsToFolder = not os.path.isfile(fileNameWithoutMeta)
if metaFilePointsToFolder:
continue
if not search_for_none_meta_with_folders(singleFile, files):
return False
else:
if not search_for_meta_with_folders(singleFile, files):
return False
return result
def search_for_meta_with_folders(fileToCheck, files):
searchingFor = fileToCheck + ".meta"
for singleFile in files:
if singleFile == searchingFor:
if not search_for_directory_meta_files(fileToCheck, files):
return False
return True
print "You tried to commit the file " + fileToCheck + " without " + searchingFor
return False
def search_for_meta(fileToCheck, files):
searchingFor = fileToCheck + ".meta"
for singleFile in files:
if singleFile == searchingFor:
return True
print "You tried to commit the file " + fileToCheck + " without " + searchingFor
return False
def search_for_none_meta_with_folders(fileToCheck, files):
searchingFor = fileToCheck.replace(".meta", "");
for singleFile in files:
if singleFile == searchingFor:
if not search_for_directory_meta_files(fileToCheck, files):
return False
return True
print "You tried to commit the file " + fileToCheck + " without " + searchingFor
return False
def search_for_none_meta(fileToCheck, files):
searchingFor = fileToCheck.replace(".meta", "");
for singleFile in files:
if singleFile == searchingFor:
return True
print "You tried to commit the file " + fileToCheck + " without " + searchingFor
return False
def search_for_directory_meta_files(fileToCheck, files):
initialDirectory = os.path.dirname(fileToCheck)
while initialDirectory != '':
absDirectory = os.path.abspath(initialDirectory) + "/"
if(os.path.exists(absDirectory)):
metaFile = initialDirectory + ".meta"
returnCode = subprocess.call(["git", "ls-files", metaFile, "--error-unmatch"])
if returnCode != 0:
# this isn't checked in, ensure it's in our commit
if not search_for_meta(initialDirectory, files):
print "Added " + initialDirectory + " without " + initialDirectory + ".meta"
return False
split = initialDirectory.rsplit('/', True)
if split[0] == initialDirectory:
break
if split[0] == "Assets":
break
initialDirectory = split[0]
return True
start()