〖Android〗代理与正常网络分开同步CyangenMod源码
为了同步CyanogenMod源代码,你也学会了FQ,对吗?
通常 .repo/manifest.xml 文件有Google AOSP的Project,也有Github的Project;
访问Github不需要FQ,而同步Google源代码则避免不了了;
想分开同步,想智能一点吗?
1 #!/usr/bin/env python 2 # encoding: utf-8 3 4 import os,sys,subprocess 5 import xml.dom.minidom 6 from xml.dom.minidom import Node 7 8 # 代理环境 9 proxy_user='' 10 proxy_pass='' 11 proxy_host='123.123.123.123' # 请改 12 proxy_port=12345 # 请改 13 if len(proxy_user) == 0: 14 http_proxy="http://%s:%d" %(proxy_host, proxy_port) 15 https_proxy="http://%s:%d" %(proxy_host, proxy_port) 16 else: 17 http_proxy="http://%s:%s@%s:%d" %(proxy_user, proxy_pass, proxy_host, proxy_port) 18 https_proxy="http://%s:%s@%s:%d" %(proxy_user, proxy_pass, proxy_host, proxy_port) 19 proxyenv={"http_proxy":http_proxy, "https_proxy":https_proxy} 20 21 # 解析.repo/manifest.xml文件,取出project节点 22 doc = xml.dom.minidom.parse('.repo/manifest.xml') 23 projects = doc.getElementsByTagName('project') 24 25 github_projects=[] 26 google_projects=[] 27 28 errorsync_projects=[] 29 30 # 执行同步函数 31 def sync_project(project, env=None): 32 """ 33 执行同步命令 34 project: 期望同步的Project name 35 """ 36 cmd="repo sync %s" %project 37 print '>>>', cmd 38 # 执行同步 39 process = subprocess.Popen(cmd, shell=True, env=env,\ 40 stdout=subprocess.PIPE, stderr=subprocess.PIPE) 41 # 实时读取STDOUT 42 out = process.stdout.readline() 43 while out: 44 print out, 45 out = process.stdout.readline() 46 err = process.stderr.readline() 47 # 实时读取STDERR 48 while err: 49 print err, 50 err = process.stderr.readline() 51 # 等待进程结束获得返回值 52 process.poll() 53 errcode = process.returncode 54 # 若有错误追加到错误数组 55 if errcode != 0: 56 errorsync_projects.append(project) 57 58 # 对project进行分类 59 # AOSP的Project保存在 google_projects 数组 60 # CyanogenMod的Project保存在 github_project 数组 61 for node in projects: 62 remote=node.getAttribute('remote') 63 project=node.getAttribute('name') 64 if remote == 'aosp': 65 google_projects.append(project) 66 else: 67 github_projects.append(project) 68 69 cur_env=os.environ.copy() 70 cur_env["http_proxy"]=http_proxy 71 cur_env["https_proxy"]=https_proxy 72 # 同步来自Google的Project 73 for project in google_projects: 74 sync_project(project, cur_env) 75 sys.exit() 76 77 # 同步来自Github的Project 78 for project in github_projects: 79 sync_project(project) 80 81 # 输出同步出错的Project 82 if len(errorsync_projects) != 0: 83 print '>>> 同步出现了错误的Project: ' 84 for project in errorsync_projects: 85 print project 86 87 print '>>> 请执行命令以重新同步Project: ' 88 for project in errorsync_projects: 89 if project in google_projects: 90 sync_cmd="env http_proxy=%s https_proxy=%s repo sync %s" %(http_proxy, https_proxy, project)91 else: 92 sync_cmd="repo sync %s" %project 93 print sync_cmd
保存脚本到 sync_split.py,同步的时候执行:
cd /path/to/src
python sync_split.py
Enjoy!
转载于:https://www.cnblogs.com/scue/p/4126879.html
〖Android〗代理与正常网络分开同步CyangenMod源码相关推荐
- Okhttp同步请求源码分析
进阶android,OKhttp源码分析--同步请求的源码分析 OKhttp是我们经常用到的框架,作为开发者们,我们不单单要学会灵活使用,还要知道他的源码是如何设计的. 今天我们来分析一下OKhttp ...
- linux内核设计与实现 epub_mongodb内核源码设计实现、性能优化、最佳运维系列-网络传输层模块源码实现四...
1. 说明 本文分析网络传输层模块中的最后一个子模块:service_executor服务运行子模块,即线程模型子模块.在阅读该文章前,请提前阅读下<<Mongodb网络传输处理源码实现及 ...
- ensp大型网络环境设计与实现_mongodb内核源码设计实现、性能优化、最佳运维系列-网络传输层模块源码实现三...
1. 说明 在之前的<<Mongodb网络传输处理源码实现及性能调优-体验内核性能极致设计>>和<<mongodb内核源码设计实现.性能优化.最佳运维系列-tran ...
- Android图片爬虫,看妹纸神器项目源码,ListView单张图片查看
Android图片爬虫,看妹纸神器项目源码 刚自学完安卓,国庆7七天花了6天纯手写入门级app,从集成图片爬虫到整个项目结束真是一步一个坑. 整个项目没有用框架,都是手写纯属练手,项目中主要用到的技术 ...
- (仿微信Android)IM聊天+抢红包+直播+朋友圈源码发布了
(仿微信Android)IM聊天+抢红包+直播+朋友圈源码发布了 功能概览: IM聊天 单聊/群聊/聊天室--基于环信sdk 红包功能: 1.一对一红包 2.群红包(抢红包.答题红包.专属红包) 3. ...
- 安卓Android与H5双向交互MathJax展示数学公式(源码+解析)
安卓Android与H5双向交互MathJax展示数学公式(源码+解析) 博主就今天周五又做了个需求(安卓Android与H5交互),原来上线的功能是服务器配置过来的学习报告(一个H5页面)并提供原始 ...
- 【Android项目】本地FM收音机开发及源码简析
[Android项目]本地FM收音机开发及源码简析 目录 1.概述 2.收音机的基本原理 3.收音机其他信息 RDS功能 4.Android开发FM收音机源码解析 5.App层如何设计本地FM应用 6 ...
- Android wifi探究二:Wifi framework层源码分析
上一篇博客初步认识了wpa_supplicant的作用和使用方法,并且尝试着梳理了wifi的大框架,不过,java层的框架我们忽略了,没有分析,也就是说上一篇博客简单的指出了wifi代码的大框架,那么 ...
- android 随手记 170多个示例demo源码
下载地址:http://pan.baidu.com/s/101PEN 2012-10-1513:03 2,098,836 AdXmpp(Openfire+asmack+spark) .zi ...
最新文章
- Ubuntu上五款搜索工具:Albert、Synapse、Utools、Ulauncher、FSearch
- 一文图解机器学习的基本算法!
- 在项目中同时使用Objective-C和Swift
- C# 如何使用 Elasticsearch (ES)
- UA MATH563 概率论的数学基础 中心极限定理21 Skorohod定理的证明
- DELL安装不了mysql_Windows 版本 Mysql 8.x 安装
- 定义一个dto对象_业务代码的救星——Java 对象转换框架 MapStruct 妙用
- 6、EIGRP配置实验之负载均衡
- python自动化框架pytest pdf_Python 自动化测试框架 unittest 和 pytest 对比
- 服务发现与负载均衡traefik ingress
- python入门小程序代码_Python入门小程序(二)
- php怎么获取权限操作 shell,利用php利用root权限执行shell脚本必须进行以下几个步骤...
- oracle buffercache,Oracle DBA开发之:使用sql来查看buffer cache的使用情况
- 大道至简java伪代码
- matlab中emd未定义,EMD的Matlab程序
- 连接数据库是显示无法连接到服务器,数据库无法连接到服务器怎么办(解决服务器连接故障的技巧)...
- html如何插入动图,动态图片如何插入到PPT里?
- PaddleSeg快速开始之 人像分割
- LT8911EXB:MIPI CSI/DSI转EDP信号转换芯片-润百信科技提供技术批量支持
- 怎么用VBA在excel中指定位置画图表? 如怎么用VBA在 A7:G13位置画出图标