mirror of https://github.com/flucont/btcloud.git

2 changed files with 101 additions and 0 deletions
@ -0,0 +1,94 @@ |
|||||
|
# coding=utf-8 |
||||
|
import os |
||||
|
import re |
||||
|
import zipfile |
||||
|
|
||||
|
replaceFile = [ |
||||
|
"./public/install/install_6.0.sh", |
||||
|
"./public/install/update_panel.sh", |
||||
|
"./public/install/update6.sh", |
||||
|
"./public/win/install/panel_update.py", |
||||
|
"./public/win/panel/data/setup.py", |
||||
|
"./public/win/panel/data/api.py", |
||||
|
] |
||||
|
|
||||
|
replaceZipDir = [ |
||||
|
"./public/install/src/", |
||||
|
"./public/install/update/", |
||||
|
"./public/win/panel/", |
||||
|
] |
||||
|
|
||||
|
originalDomain = "www.example.com" |
||||
|
|
||||
|
originalDomainSSL = { |
||||
|
"http://www.example.com": "https://", |
||||
|
"http:\/\/www.example.com": "https:\/\/", |
||||
|
} |
||||
|
|
||||
|
isSSL = False |
||||
|
|
||||
|
|
||||
|
def replaceStringInFile(filePath, newString): |
||||
|
with open(filePath, "r+", encoding="utf-8") as f: |
||||
|
fileContent = f.read() |
||||
|
if isSSL: |
||||
|
for key, value in originalDomainSSL.items(): |
||||
|
fileContent = fileContent.replace(key, value+newString) |
||||
|
else: |
||||
|
fileContent = fileContent.replace(originalDomain, newString) |
||||
|
f.seek(0) |
||||
|
f.write(fileContent) |
||||
|
f.truncate() |
||||
|
|
||||
|
|
||||
|
def replaceStringInZip(zipPath, newString): |
||||
|
if zipPath.endswith(".zip"): |
||||
|
oldZipPath = zipPath + ".old" |
||||
|
os.rename(zipPath, oldZipPath) |
||||
|
with zipfile.ZipFile(oldZipPath) as inZip, zipfile.ZipFile(zipPath, "w") as outZip: |
||||
|
for inZipInfo in inZip.infolist(): |
||||
|
with inZip.open(inZipInfo) as inFile: |
||||
|
if (inZipInfo.filename.endswith(".py") or inZipInfo.filename.endswith(".sh")) and inZipInfo.filename != "panel/class/sewer/cli.py": |
||||
|
data = inFile.read() |
||||
|
if isSSL: |
||||
|
for key, value in originalDomainSSL.items(): |
||||
|
data = data.replace(key.encode("utf-8"), (value + newString).encode("utf-8")) |
||||
|
else: |
||||
|
data = data.replace(originalDomain.encode("utf-8"), newString.encode("utf-8")) |
||||
|
outZip.writestr(inZipInfo, data) |
||||
|
else: |
||||
|
outZip.writestr(inZipInfo, inFile.read()) |
||||
|
os.remove(oldZipPath) |
||||
|
|
||||
|
|
||||
|
if __name__ == '__main__': |
||||
|
newDomain = input("Please enter your domain(www.aaaa.com): ") |
||||
|
if not re.match("^[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})*$", newDomain): |
||||
|
print("Domain format error!") |
||||
|
exit() |
||||
|
print("Your domain is: " + newDomain) |
||||
|
|
||||
|
ssl = input("Is your domain SSL?(y/n): ") |
||||
|
if ssl == "y": |
||||
|
isSSL = True |
||||
|
elif ssl == "n": |
||||
|
isSSL = False |
||||
|
else: |
||||
|
print("Input error!") |
||||
|
exit() |
||||
|
|
||||
|
projectPath = os.path.abspath(__file__+"/../..") |
||||
|
print("Your project path is: " + projectPath) |
||||
|
|
||||
|
for aFilePath in replaceFile: |
||||
|
aFileFullPath = os.path.abspath(projectPath+aFilePath) |
||||
|
replaceStringInFile(aFileFullPath, newDomain) |
||||
|
print("Single file replace done. wait for zip file replace...") |
||||
|
|
||||
|
for aZipDir in replaceZipDir: |
||||
|
if os.path.exists(aZipDir): |
||||
|
for aZipFile in os.listdir(aZipDir): |
||||
|
if aZipFile.endswith(".zip"): |
||||
|
print(os.path.abspath(projectPath+aZipDir+aZipFile)) |
||||
|
replaceStringInZip(aZipDir+aZipFile, newDomain) |
||||
|
print("All done.") |
Write
Preview
Loading…
Cancel
Save
Reference in new issue