新建项目
This commit is contained in:
1 parent
5e2e890cfc
commit
633d9b872b
1351 files changed
+730564
No files matched your search
@@ -0,0 +1,84 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding:UTF-8 -*-
|
||||
|
||||
"""
|
||||
shellTools
|
||||
|
||||
Author
|
||||
Letter(nevermindzzt@gmail.com)
|
||||
|
||||
Date
|
||||
2020-04-14
|
||||
|
||||
Copyright
|
||||
(c) Letter 2020
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import re
|
||||
|
||||
FILE_PATTERN = r"^.*?\.(cpp|c|h)$"
|
||||
SHELL_EXPORT_PATTERN = r"^\s*SHELL_EXPORT_(CMD|CMD_AGENCY|VAR|USER|KEY|KEY_AGENCY|CMD_GROUP|PASSTROUGH)\s*\(\s*\S+\s*,\s*(\S+)\s*,.*$"
|
||||
|
||||
def isCodeFile(name):
|
||||
return re.match(FILE_PATTERN, name) != None
|
||||
|
||||
def getCodeFiles(path):
|
||||
names = os.listdir(path)
|
||||
files = []
|
||||
for name in names:
|
||||
fullName = os.path.join(path, name)
|
||||
if os.path.isdir(fullName):
|
||||
files = files + getCodeFiles(fullName)
|
||||
else:
|
||||
if re.match(FILE_PATTERN, name) != None:
|
||||
files.append(fullName)
|
||||
return files
|
||||
|
||||
def getFileEcoding(name):
|
||||
encoding = ""
|
||||
try:
|
||||
with open(name, encoding="utf-8") as f:
|
||||
f.read()
|
||||
encoding = "utf-8"
|
||||
except:
|
||||
try:
|
||||
with open(name, encoding="gbk") as f:
|
||||
f.read()
|
||||
encoding = "gbk"
|
||||
except:
|
||||
encoding = "ascii"
|
||||
return encoding
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
path = sys.argv[1]
|
||||
itemList = []
|
||||
codeLine = ""
|
||||
for codeFile in getCodeFiles(path):
|
||||
try:
|
||||
with open(codeFile, encoding=getFileEcoding(codeFile)) as f:
|
||||
lineNum = 0
|
||||
while True:
|
||||
line = f.readline()
|
||||
if line:
|
||||
line = line.replace("\r", " ").replace("\n", " ")
|
||||
codeLine = codeLine + line
|
||||
lineNum = lineNum + 1
|
||||
if ";" in codeLine or "}" in codeLine:
|
||||
matcher = re.match(SHELL_EXPORT_PATTERN, codeLine)
|
||||
if matcher != None:
|
||||
item = (matcher.group(1), matcher.group(2), codeFile, lineNum)
|
||||
itemList.append(item)
|
||||
codeLine = ""
|
||||
else:
|
||||
codeLine = ""
|
||||
break
|
||||
except Exception as e:
|
||||
print(e)
|
||||
pass
|
||||
|
||||
for item in sorted(itemList, key=lambda x:(x[1])):
|
||||
print("shell export %s, %s in file %s:%d"
|
||||
%(item[0], item[1], item[2], item[3]))
|
||||
Reference in new issue
Block a user