zoukankan      html  css  js  c++  java
  • 一键git push脚本(python版)

    #!/usr/bin/env python
    
    import os
    import subprocess
    import sys
    import time
    
    gitconfig = {
        'cwd': './blog/public',
        'git': {
            'github': ['git@github.com:akkuman/akkuman.github.io.git', 'master'],
            'coding': ['git@git.coding.net:Akkuman/Akkuman.git', 'coding-pages'],
        }
    }
    
    def main():
        global gitconfig
    
        # change working directory
        os.chdir(gitconfig.get('cwd', '.'))
    
        # check if git init
        if '.git' not in os.listdir():
            subprocess.check_call(['git', 'init'])
    
        # check if remote in config, if not, add the remote
        git_remotes = subprocess.check_output(['git', 'remote', '-v'])
        git_remotes_str = bytes.decode(git_remotes).strip()
        git_remotes_list = [line.split()[0] for line in git_remotes_str.split('
    ')]
        for k,v in gitconfig['git'].items():
            if k not in git_remotes_list:
                subprocess.check_call(['git', 'remote', 'add', k, v[0]])
    
        # add . & commit with message
        subprocess.check_call(['git', 'add', '.'])
        commit_message = 'Site updated: %s' % time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        if len(sys.argv) == 2:
            commit_message = sys.argv[1]
        subprocess.call(['git', 'commit', '-m', commit_message])
        
        # push to every remote repo
        for k,v in gitconfig['git'].items():
            subprocess.check_call(['git', 'push', k, 'master:%s' % v[1]])
    
    if __name__ == '__main__':
        if len(sys.argv) == 2:
            if sys.argv[1] == '-h':
                print('Usage:
    	%s [commit_message]' % sys.argv[0])
        main()
    
    
  • 相关阅读:
    [THREEJS]坐标高精度问题
    纹理的寻址方式
    [1009]JS语言精髓与编程实践笔记1
    万向锁
    (转)primitive restarting
    西藏游记
    平衡二叉树(AVL tree)
    初探redis事务
    redis发布与订阅
    初探redis分布式锁
  • 原文地址:https://www.cnblogs.com/Akkuman/p/9519200.html
Copyright © 2011-2022 走看看