一个类似repo的小程序

#! /usr/bin/env python
# -*- coding: utf-8 -*-
# usage :  python EasyRepo.py -u "13051041" -v "v6.0.0"
# by (13051041) 20160909

import os
try:
  import xml.etree.cElementTree as ET
except ImportError:
  import xml.etree.ElementTree as ET
import sys

projectList = []

class Project:
   def __init__(self,n,b):
        self.name = n
        self.branch = b

def downloadManifest(username,version):
    manifest = "git clone ssh://%[email protected]:29418/manifest"%(username)
    os.system(manifest)

    path = os.path.join(os.getcwd(),"manifest")
    for parent,dirnames,filenames in os.walk(path):
        for filename in filenames:
            if version in str(filename):
                print "the version xml file is:" + os.path.join(parent,filename)
                return os.path.join(parent,filename)

    pass

def analyzerXml(path):
    global projectList
    try:
        tree = ET.parse(path)
        root = tree.getroot()
    except Exception, e:
        print "Error:cannot parse file:country.xml."
        sys.exit(1)
    for project in root.findall(‘project‘):
        name = project.get(‘name‘)
        version = project.get(‘revision‘)
        p = Project(name,version)
        projectList.append(p)
        print name, version

def syncProject(username):
    global projectList
    for p in projectList:
        cmd = ‘‘‘
        git clone ssh://%[email protected]:29418/%s && scp -p -P 29418 %[email protected]:hooks/commit-msg %s/.git/hooks/
        cd %s
        git pull
        git checkout %s
        ‘‘‘% (username,p.name,username,p.name,p.name,p.branch)
        os.system(cmd)

if __name__ == ‘__main__‘:
    help = ‘‘‘usage :  python easyRepo.py -u 13051041 -v v6.0.0 ‘‘‘
    username = ""
    version = ""
    numU = 0
    numV = 0
    numH = 0
    for i in range(1, len(sys.argv)):
        if "-v" in sys.argv[i]:
            numV = i
        if "-u" in sys.argv[i]:
            numU = i
        if "-h" in sys.argv[i]:
            numH = i
        if numU != 0 and i== numU+1:
            username = sys.argv[i]
        if numV != 0 and i== numV+1:
            version = sys.argv[i]

    if numH !=0:
        print help

    if numU == 0:
        print "参数有问题 没有 -u"
        print help
        sys.exit(1)

    if numV == 0:
        print "参数有问题 没有 -v"
        print help
        sys.exit(1)

    print "user name is ",username
    print "version name is ",version

    path = downloadManifest(username,version)
    analyzerXml(path)
    syncProject(username)

  

时间: 2024-10-16 03:09:27

一个类似repo的小程序的相关文章

用Go写了一个类似Proxy的小程序,可以用来访问goolge个人使用还是可以的.

package main import ( "fmt" "io" "net/http" ) func main() { http.HandleFunc("/", route) e := http.ListenAndServe(":80", nil) if e != nil { fmt.Println(e) } } func route(w http.ResponseWriter, r *http.Reque

C#中“走马灯”和类似“打地鼠”的小程序

今天主要复习了一下昨天学习的窗体小程序.主要会运用到控件的一些基本属性. 程序: 走马灯(要求是:使用两个窗体,两个窗体之间要传值,Form1传值给Form2,传入的字符串在Form2窗体上横向滚动) * 首先是设定界面(txtname,txtpwd.第二个文本框txtname设置它的UseSystemPasswordChar属性为true,MaxLength设为6) 文本框的属性:UseSystemPasswordChar 指示编辑控件中的文本是否以默认的密码字符(“●”)显示.   Pass

两天撸一个天气应用微信小程序

这是一个完整的已经线上运行的天气应用小程序,点击可查看源码,可随意 star.也可以扫描下方的小程序码直接体验. 效果图: 说明 鸣谢:pure 天气 APP:首页样式借鉴了 pure天气 APP.如侵删. 数据来源 地理编码.天气数据均来自百度地图开放平台.个人开发完全免费,有对应的小程序 sdk,加入即可,但是返回的天气数据较少. 运行前准备 注册微信小程序,获取 appid 注册百度地图开放平台开发者,创建应用,获取 ak(其他配置自行查看) 在 app.js 中替换 globalData

一个字符编码处理小程序(一)

一个字符编码处理小程序(一)以前与他人合作申请了一个汉字输入法编码专利(YXY),现在决定继续在此基础上进行一些开发工作,要将它的编码拆分成前.中.后三个子串,以便作进一步的处理.用户故事可以表达为:作为一个代码的开发人员,需要将YXY编码拆分成前.中.后三个子字符串,以便作进一步的汉字分析处理.下面对照个人开发流程,进行开发工作:一. 计划估计这个任务需要多少开发时间.由于利用业余时间开发,开发时间呈现碎片化的状况:故这里只是估计纯的开发时间,大约需要两周.二. 开发1. 分析需求出入内容:Y

只是一个关于表白的小程序而已,如果你不知道怎么拒绝我,那就来掐死我吧。

只是一个关于表白的小程序而已,如果你不知道怎么拒绝我,那就来掐死我吧. 背景: 小M同学喜欢小X同学,并且小M同学跟你们一样是枚程序猿.小M同学决定向小X同学表白.但是小M同学他是个程序猿啊,所以他害羞腼腆,不好意思直接说,于是他决定写了小程序向小X同学表白.于是发生了如下的事情. 时间:某年某月20日    人物:小M和小X    地点:说多是泪 (通话中) 小M:小X吗?我是小M. 小X:是啊,怎么了? 小M:是这样的,我最近写了个小程序,不知道你有没有时间帮我测一下啊? 小X:时间倒是有的

实现一个servlet的helloworld小程序(不适用Eclipse)

1. 在tomcat中的webapps下建一个应用程序FirstServlet(C:\tomcat\webapps\FirstServletweb) 2. 在应用程序下建立目录 C:\tomcat\webapps\FirstServletweb\WEB-INF\classes 3. 在class目录下建立一个文件 FirstServlet.java 4. 实现内容 package cn.school; import java.io.*; import javax.servlet.*; publi

【转】两天快速开发一个自己的微信小程序 悬笔e绝 www.xuanbiyijue.com

文章出处:https://www.cnblogs.com/xuanbiyijue/p/7980010.html 作者: 悬笔e绝 www.xuanbiyijue.com 两天快速开发一个自己的微信小程序 一.写在前面 1.为什么要学小程序开发? 对于前端开发而言,微信小程序因为其简单快速.开发成本低.用户流量巨大等特点,也就成了前端开发工程师必会的一个技能. 2.先放上我做的小程序 可以在微信小程序搜索“悬笔e绝”,或者用微信扫描下面的二维码哦 (1)欢迎页:这个logo是当年念大学给社团做的l

利用java开发一个双击执行的小程序

之前我们利用java写了很多东西,但是好像都没有什么实际意义. 因为有意义桌面小程序怎么都得有个界面,可是界面又不太好搞.或者 了解到这一层的人就少之又少了. 呀,是不是还得开辟一些版面来介绍awt和 swing... 算了 先把这个 双击执行的小程序 贡献出来. 这次 在分享一下源代码[以前还没有上传过源代码,布置怎么个搞法] 要求是: 输入一个 后缀名,然后输入所在目录,然后 点击查找,比如我们可以 输入F:\,然后查找 F盘下面的所有后缀名为比如.pdf 举例: 主要是 看了很多 资源,然

继上一个坑有一个坑(微信小程序一键登录之无法识别json数据)

前言:  作为一个运维人员不背锅,谁背呢! 正文: 开发人员和前端人员写好了微信小程序,然后坑出现了,安卓上打死不能一键登录.然后开始排查, 开始从数据上着手,不管是使用postman进行模拟测试数据,还是通过抓包查看数据,无任何问题,但是就是微信小程序无法判断改数据是json数据. 后来继续测试,打console.log 断点,抛数据出来查看发现 该数据 确实也存在问题,直接使用res.data 使用typeof 查看 确实为字符串,但是使用JSON.parse 却抛的微信小程序 百度都不能百