帖子
帖子
用户
博客
课程
显示全部楼层
10
帖子
0
勋章
1918
Y币

一个用于增量打包的sublime插件功能,提高云修复效率

[复制链接]
发表于 2016-1-1 18:21:40
官方的sublime插件里只有一个压缩widget功能,这个是全量打包,但很多时候我们需要将一些修改过的文件进行增量打包然后静默更新,
修改了一下sublime插件代码,点击压缩widget后会有增量打包功能选择,替换sublime的Packages目录下的Sublime-APICloud-Loader/apicloud-load.py即可。
主要功能就是将上次打包后修改的文件进行增量打包,提高修复效率。打包时 Sublime-APICloud-Loader 目录会生成上次增量打包的时间戳,用 项目名.timeline 记录。




本帖子中包含更多资源,您需要 登录 才可以下载或查看,没有帐号?立即注册

X
15
帖子
0
勋章
3350
Y币
挺实用的   正好学学py
0
帖子
0
勋章
86
Y币
这个挺实用的,正好啊。
15
帖子
0
勋章
3350
Y币
import zipfile
class CompressWidgetCommand(sublime_plugin.WindowCommand):
    def run(self, dirs):
        logging.basicConfig(level=logging.DEBUG,
            format='%(asctime)s %(message)s',
            datefmt='%Y %m %d  %H:%M:%S',
            filename=os.path.join(curDir,'apicloud.log'),
            filemode='a')
        dirname=dirs[0]
        filelist=[]  
        fulldirname=os.path.abspath(dirname)  
        zipfilename=os.path.basename(fulldirname)+'.zip'
        fullzipfilename=os.path.join(os.path.dirname(fulldirname),zipfilename)  
        logging.info('*'*30+'begin CompressWidgetCommand'+'*'*30)
        logging.info("CompressWidgetCommand: Begin to zip %s to %s ..." % (fulldirname, fullzipfilename)  )
        if not os.path.exists(fulldirname):  
            logging.info( "CompressWidgetCommand: Folder %s is not exist" % fulldirname  )
            sublime.error_message(u"文件夹 %s 不存在!" % fulldirname)
            return  
        if os.path.exists(fullzipfilename):      
            flag=sublime.ok_cancel_dialog(u"文件%s 已存在,确定覆盖该文件 ? [Y/N]" % fullzipfilename)
            logging.info("CompressWidgetCommand: %s has already exist" % fullzipfilename  )
            if not flag:
                logging.info('CompressWidgetCommand: cancel zip the folder')
                return

        for root, dirlist, files in os.walk(dirname):  
            for filename in files:  
                filelist.append(os.path.join(root,filename))  

        destZip=zipfile.ZipFile(fullzipfilename, "w")  
        for eachfile in filelist:  
            destfile=eachfile[len(dirname):]  
            sublime.status_message(u"正在压缩文件 file %s." % destfile )
            logging.info("CompressWidgetCommand: Zip file %s." % destfile  )
            destZip.write(eachfile, 'widget'+destfile)  
        destZip.close()  
        sublime.status_message(u'压缩完成')
        logging.info("CompressWidgetCommand: Zip folder succeed!")        
        logging.info('*'*30+'CompressWidgetCommand complete'+'*'*30)

    def is_visible(self, dirs):
        return len(dirs) == 1        

    def is_enabled(self, dirs):
        if 0==len(dirs):
            return False
        appFileList=os.listdir(dirs[0])
        if 'config.xml' in appFileList:
            return True
        return False

.......哪有你说的那功能.......
您需要登录后才可以回帖 登录

本版积分规则