mirror of
https://github.com/tsingui/softcenter-1.git
synced 2024-11-15 02:15:18 +00:00
62 lines
2.3 KiB
Python
62 lines
2.3 KiB
Python
|
#!/usr/bin/env python
|
|||
|
# _*_ coding:utf-8 _*_
|
|||
|
|
|||
|
import os
|
|||
|
import json
|
|||
|
import codecs
|
|||
|
import hashlib
|
|||
|
from string import Template
|
|||
|
|
|||
|
parent_path = os.path.dirname(os.path.realpath(__file__))
|
|||
|
|
|||
|
def md5sum(full_path):
|
|||
|
with open(full_path, 'rb') as rf:
|
|||
|
return hashlib.md5(rf.read()).hexdigest()
|
|||
|
|
|||
|
def get_or_create():
|
|||
|
conf_path = os.path.join(parent_path, "config.json.js")
|
|||
|
conf = {}
|
|||
|
if not os.path.isfile(conf_path):
|
|||
|
print u"config.json.js 文件找不到,build.py 一定得放插件根目录。自动为您生成一个config.json.js,其它信息请您自己修改。"
|
|||
|
module_name = os.path.basename(parent_path)
|
|||
|
conf["module"] = module_name
|
|||
|
conf["version"] = "0.0.1"
|
|||
|
conf["home_url"] = ("Module_%s.asp" % module_name)
|
|||
|
conf["title"] = "title of " + module_name
|
|||
|
conf["description"] = "description of " + module_name
|
|||
|
else:
|
|||
|
with codecs.open(conf_path, "r", "utf-8") as fc:
|
|||
|
conf = json.loads(fc.read())
|
|||
|
return conf
|
|||
|
|
|||
|
def build_module():
|
|||
|
try:
|
|||
|
conf = get_or_create()
|
|||
|
except:
|
|||
|
print u"config.json.js 文件格式错误"
|
|||
|
traceback.print_exc()
|
|||
|
if "module" not in conf:
|
|||
|
print u"没有 module 在 config.json.js 里"
|
|||
|
return
|
|||
|
module_path = os.path.join(parent_path, conf["module"])
|
|||
|
if not os.path.isdir(module_path):
|
|||
|
print u"找不到对应的 %s 文件夹,config.json.js 里面的 module 值不对?" % module_path
|
|||
|
return
|
|||
|
install_path = os.path.join(parent_path, conf["module"], "install.sh")
|
|||
|
if not os.path.isfile(install_path):
|
|||
|
print u"找不到对应的 %s 文件,插件确实 install.sh 文件"
|
|||
|
return
|
|||
|
print u"生成中..."
|
|||
|
t = Template("cd $parent_path && rm -f $module.tar.gz && tar -zcf $module.tar.gz $module")
|
|||
|
os.system(t.substitute({"parent_path": parent_path, "module": conf["module"]}))
|
|||
|
conf["md5"] = md5sum(os.path.join(parent_path, conf["module"] + ".tar.gz"))
|
|||
|
conf_path = os.path.join(parent_path, "config.json.js")
|
|||
|
with codecs.open(conf_path, "w", "utf-8") as fw:
|
|||
|
json.dump(conf, fw, sort_keys = True, indent = 4, ensure_ascii=False, encoding='utf8')
|
|||
|
print u"生成完成", conf["module"] + ".tar.gz"
|
|||
|
hook_path = os.path.join(parent_path, "backup.sh")
|
|||
|
if os.path.isfile(hook_path):
|
|||
|
os.system(hook_path)
|
|||
|
|
|||
|
build_module()
|