码迷,mamicode.com
首页 > 其他好文 > 详细

fabric 自动创建仓库并下载或更新代码

时间:2017-08-11 14:36:59      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:bsp   evo   als   try   stdout   user   部分   git init   abr   

#!/usr/bin/python
# -*- coding: utf-8 -*
from fabric.api import *
from fabric.contrib.files import *

## 需要注意的是,这里的host strings必须由username@host:port三部分构成,缺一不可,否则运行时还是会要求输入密码
env.hosts = [
    root@2.21.103.123,
]

env.passwords = {
    root@2.21.103.123:22: 111111,
}

env.sdir="/data/soft/soft/"
env.username = wangteng
env.email = wangteng@qq.cn
env.gitlab_url = http://git.qqq.cn/qq_devops/zq.git


def test_exist_dir():
    # 检查仓库是否已经存在
    if int(run(" [ -e ‘%s‘ ] && echo 11 || echo 10" % env.sdir)) == 11:
        result = True
    else:
        result = False
    return result


@task
def git_config():
    # 配置git,这个配置只需一次就好
    try:
        run(git config --global user.name "%s"%env.username)
        run(git config --global user.email "%s"%env.email)
        run(git remote add origin %s%env.gitlab_url)
    except:
        pass


def make_dir():
    # 如果目录不存在,则创建目录,初始化为仓库,并将代码下载到仓库
    run(mkdir -p %s;git init%(env.sdir,))
    git_config()
    run(cd %s;git clone %s%(env.sdir,env.gitlab_url))


def get_file():
    # 如果仓库存在,进行代码更新
    dir_name = env.sdir+env.gitlab_url.split(/)[-1].split(.)[0]
    run(cd %s;git pull%dir_name)


@task
def start():
    flag = test_exist_dir()
    if flag:
        get_file()
    else:
        make_dir()


@task
def no_username_password():
    run(cd /;git config --global credential.helper store)

# fab -f test_fabric.py start --hide status,running,stdout,user,aborts,warnings,stderr 忽略所有输出

 

fabric 自动创建仓库并下载或更新代码

标签:bsp   evo   als   try   stdout   user   部分   git init   abr   

原文地址:http://www.cnblogs.com/wt11/p/7345388.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!