Beispiel #1
0
def handJsc(mode):
    if mode == "jsc":
        Tools.compileJSToJSC()
    elif mode == "js":
        Tools.JSCToJS()
    else:
        print "js mode error need jsc or js"
Beispiel #2
0
    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)
Beispiel #3
0
def handRes(mode):
    if mode == "compress":
        Tools.compressRes()
    elif mode == "uncompress":
        Tools.uncompressRes()
    else:
        print "res mode error need compress or uncompress"
Beispiel #4
0
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()
Beispiel #5
0
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("游戏资源拷贝完成")
Beispiel #6
0
    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))
Beispiel #7
0
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
Beispiel #8
0
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("所有游戏资源拷贝完成")