def handJsc(mode): if mode == "jsc": Tools.compileJSToJSC() elif mode == "js": Tools.JSCToJS() else: print "js mode error need jsc or js"
def __init__(self, mode, time, version): # self.arg = arg self.mode = mode self.time = time self.inputversion = version self.outdir = "hot_res" self.src = "src" self.res = "res" self.copy = Copy() self.copy.createDir(self.outdir) self.recodepath = "%s/recode.json" % self.outdir self.tools = Tools() self.log = "%s/log.json" % self.outdir self.logdata = "" self.packversionPath = "%s/version.json" % self.outdir self.packversion = int(self.copy.getFileData(self.packversionPath, "0")) + 1 self.hotVersion = "1.0.%d" % self.packversion self.hotSaveDir = "%s/%s" % (self.outdir, self.hotVersion) self.copy.createDir(self.hotSaveDir) if self.mode == "init": self.createRecode() elif self.mode == "pack": self.getDiff() elif self.mode == "repack": self.packversion = int(self.inputversion) self.hotVersion = "3.0.%d" % self.packversion self.hotSaveDir = "%s/%s" % (self.outdir, self.hotVersion) self.packHotRes(self.hotSaveDir)
def handRes(mode): if mode == "compress": Tools.compressRes() elif mode == "uncompress": Tools.uncompressRes() else: print "res mode error need compress or uncompress"
def start(all=False): curerntOperationCode = platform + "_" + pushPlatform lastOperationCode = copy.getFileData(logPath) oc = copy.getFileData('python/op.txt', "") if oc == "android" and all == False and not curerntOperationCode == lastOperationCode: Plugin("").backToPlatform() copy.saveDataToFile('python/op.txt', "android") print "curerntOperationCode = ", curerntOperationCode, " lastOperationCode = ", lastOperationCode, " operationCode = ", operationCode, " platform = ", platform, " showLabel = ", showLabel print "fromBaseDir = ", fromBaseDir if checkParma() == 0: return # if cmp(lastOperationCode,curerntOperationCode) == 0: # print "平台操作没变 不需要重新copy资源" # else: # createAndRoidApplication() createAndRoidApplication(all=all) # if operationCode == 3 or operationCode == 1: # os.system('cocos compile -p android -m release') # if operationCode == 1: # binPath = "frameworks/runtime-src/proj.android/out/" + platform # apkFile = "frameworks/runtime-src/proj.android/bin" # if not os.path.exists("frameworks/runtime-src/proj.android/out"): # os.mkdir("frameworks/runtime-src/proj.android/out") # if not os.path.exists(binPath): # os.mkdir(binPath) # copy.copyFiles(apkFile,binPath) # shutil.rmtree(apkFile) var_g.set(getJsonValue(toBaseDir + 'assets/platform.json', "game_loginUrl")) copy.saveDataToFile(logPath, curerntOperationCode) if not all: alert("项目生成完成") Tools.checkPlatformJson(toBaseDir + 'assets/platform.json') print "------------ 操作结束 ---------------------" initParmas()
def copyGameRes(show=True): """ 这里要修改一下 要把ios平台用的音效去掉 """ copy.removeDir(toBaseDir + "assets/res") """ remove IJMassets """ copy.removeFile(toBaseDir + "base/assets/2.apk") copy.removeFile(toBaseDir + "base/assets/cci.bin") copy.removeFile(toBaseDir + "base/lib/armeabi/libccgamec.so") copy.copyFiles("base/res", toBaseDir + "assets/res", filterDir=["res/music"]) Tools.checkIOSMusicDir() # copy.copyDir('music/android',toBaseDir + 'assets/res/music/android') if show: saySome("游戏资源拷贝完成")
def __init__(self): self.res = "res" self.tools = Tools() self.copy = Copy() self.packCount = 0 self.toDir = "res_zip" self.MB = 1024 * 1024 * 30 self.filterlist = [ "effectexportjson", "font", "fonts", "gameConfig", "icon", "login", "music", "onlineUpdate", "particles", "shaders", "yayasdk" ] self.baselist = ["res/%s" % n for n in self.filterlist] print self.baselist self.filterFilelist = [ "res/heroInfo_1/%s" % n for n in [ "warning_bg.png", "common_button1_normal.png", "common_button1_down.png", "common_button1_disable.png", "common_button2_normal.png", "common_button2_down.png", "warning_notice_view.json" ] ] self.currentVersion = 1 self.currentVersionFlag = "3.0.%d" self.out_zip = "out_zip" if os.path.exists(self.out_zip): shutil.rmtree(self.out_zip) os.makedirs(self.out_zip) self.baseDir = "base" if not os.path.exists(self.baseDir): os.makedirs(self.baseDir) if not os.path.exists(self.toDir): os.makedirs(self.toDir) else: if os.path.exists(self.toDir + "/res"): shutil.rmtree(self.toDir + "/res") self.currentDir = "" self.currentZipDir = "" self.currentPackSize = 0 self.handerBase() # return; self.createZipDir() self.startup(self.res) self.packmusic() os.system("zip -r %s.zip %s" % (self.out_zip, self.out_zip))
class SVN(): """docstring for SVN""" def __init__(self, mode, time, version): # self.arg = arg self.mode = mode self.time = time self.inputversion = version self.outdir = "hot_res" self.src = "src" self.res = "res" self.copy = Copy() self.copy.createDir(self.outdir) self.recodepath = "%s/recode.json" % self.outdir self.tools = Tools() self.log = "%s/log.json" % self.outdir self.logdata = "" self.packversionPath = "%s/version.json" % self.outdir self.packversion = int(self.copy.getFileData(self.packversionPath, "0")) + 1 self.hotVersion = "1.0.%d" % self.packversion self.hotSaveDir = "%s/%s" % (self.outdir, self.hotVersion) self.copy.createDir(self.hotSaveDir) if self.mode == "init": self.createRecode() elif self.mode == "pack": self.getDiff() elif self.mode == "repack": self.packversion = int(self.inputversion) self.hotVersion = "3.0.%d" % self.packversion self.hotSaveDir = "%s/%s" % (self.outdir, self.hotVersion) self.packHotRes(self.hotSaveDir) def saveRecode(self): f = open(self.recodepath, "w") json.dump(self.recodedata, f) f.close() def getDiff(self): f = open(self.recodepath, "r") self.recodedata = json.load(f) f.close() self.getDiffSignalDir(self.res) self.getDiffSignalDir(self.src) self.saveRecode() f = open(self.log, "w") f.write(self.logdata) f.close() self.packHotRes(self.hotSaveDir) def getDiffSignalDir(self, dir): for item in os.walk(dir): if not item[2]: continue for f in item[2]: file = os.path.join(item[0], f) t = os.path.getmtime(file) oldTime = 0 if file in self.recodedata: oldTime = self.recodedata[file] """ check weather mofidy file or not """ checknow = self.time == 0.0 and t > oldTime timesperate = time.time() - self.time * 3600 checktime = self.time > 0.0 and t > timesperate """ 有两种比对 1.如果输入的时间是now那么只比对当前文件的个性时间和记录的时间差值大于0 认不文件是修改过的 2.如果输入时间(以小时为单位)则计算当前时间前n个小时内有修改过的文件 """ if checknow or checktime: self.recodedata[file] = t self.copy.copyFile(file, "%s/%s" % (self.hotSaveDir, file)) self.logdata = self.logdata + file + "\n" def packHotRes(self, versionDir): res = "%s/res" % versionDir src = "%s/src" % versionDir if not os.path.exists(res) and not os.path.exists(src): print "no res need zip %s %s" % (res, src) sys.exit() self.tools.jscompile("%s/src" % versionDir) zf = zipfile.ZipFile("%s/%d.zip" % (self.outdir, self.packversion), "w", zipfile.zlib.DEFLATED) def zipDir(dir): for item in os.walk(dir): if not item[2]: continue for f in item[2]: file = os.path.join(item[0], f) name = file[len(versionDir):] # name = file zf.write(file, name) zipDir(res) zipDir(src) vf = "%s/game_version.json" % self.outdir f = open(vf, "w") json.dump({"version": self.hotVersion}, f) f.close() zf.write(vf, "game_version.json") self.copy.saveDataToFile(self.packversionPath, str(self.packversion)) def createRecode(self): f = open(self.recodepath, "w") self.recodedata = {} si = self.tools.getdirsize(self.res) maxSize = 1024 * 1024 * 400 if not si > maxSize: self.createRecodeSignalDir(self.res) else: self.tools.alert("请先压缩资源在操作") return if os.path.exists("%s/resource.js" % self.src): self.createRecodeSignalDir(self.src) else: self.tools.alert("请记录JS而不是JSC") return json.dump(self.recodedata, f, indent=2) f.close() def createRecodeSignalDir(self, dir): for item in os.walk(dir): if not item[2]: continue for f in item[2]: file = os.path.join(item[0], f) t = os.path.getmtime(file) self.recodedata[file] = t
def copyAllGameRes(): copy.removeDir(toBaseDir + "assets/res") copy.copyFiles("res", toBaseDir + "assets/res", filterDir=["res/music"]) Tools.checkIOSMusicDir() copy.copyDir('music/android', toBaseDir + 'assets/res/music/android') saySome("所有游戏资源拷贝完成")