博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Github变身网络硬盘
阅读量:6622 次
发布时间:2019-06-25

本文共 3245 字,大约阅读时间需要 10 分钟。

我在简书写博客, 会使用markdown格式, 然后把相关资源传到百度网盘, 但最近发现百度网盘的资源经常会被取消分享, 为了彻底解决这个问题, 我把选择把资源传到Github, 博客本身的markdown格式可以作为README.md

于是我写了一个脚本,让程序自动完成这项工作:

原始目录架构

运行结果

Github自动生成新仓库

本地目录变化

在运行脚本之前,需要按照文章 , 完成秘钥对的添加!

源码:

1. 主脚本文件
# 本脚本需要提供的资源信息:## 信息1: github账户及密码, ## 信息2: 新建的github仓库名称(驼峰式英文名)## 信息3: 简书的.md文档## 信息4: 需要上传的其他文件资源(单个文件资源不超过100M)# 本脚本完成三个任务## 任务1: 根据用户提供的仓库名创建github仓库, ## 任务2: 将简书.md文档作为README.md上传到github## 任务3: 将其他文件资源(单文件不超过100M)上传到github(原来我一直放到百度盘, 后来发现百度盘分享经常挂掉, 就放弃了百度)# 环境要求## 1. 已经安装curl## 2. 已经安装gitimport osimport jsondef getInfo():	info = {}	with open("./inputInfo.txt", 'r') as f:		jsonStr = ''		lines = f.readlines()		# 过滤注释, 生成json格式		for line in lines:			if '#' not in line:				jsonStr += line		info = json.loads(jsonStr)	return info# 在github创建远程仓库def CreateRepository(info):	GitHubUserName = info['GitHubUserName']	GitHubPassWord = info['GitHubPassWord']	GitHubRepositoryName = info['GitHubRepositoryName']	new_command = 'curl -i -u ' + '\'' +GitHubUserName + ':' + GitHubPassWord + '\'' +' -d ' + '\''+ '{"name": ' + '\"'+GitHubRepositoryName +'\"'+ ', ' + '"auto_init": ' + 'true, ' + '"private": ' + 'false, ' + '"gitignore_template": ' + '"nanoc"}' + '\'' + ' https://api.github.com/user/repos'	result = os.popen(new_command).readlines()	if ('HTTP/1.1 201 Created\n' in result):		print("创建成功")		return True	else:		return False	def GetRepository(info):	GetAllRepCommand = 'curl -i -u ' + '\'' + info['GitHubUserName'] + ':' + info['GitHubPassWord'] +'\'' + ' https://api.github.com/user/repos'	print(GetAllRepCommand)	result = os.popen(GetAllRepCommand).readlines()	keyWord = info['GitHubUserName']+'/'+info['GitHubRepositoryName']	# 判断仓库是否创建成功	if not (keyWord in str(result)):		return	# 获取仓库到同级目录下	# git@github.com:zhaoolee/ChatRoom.git	GetRepCommand = 'git clone git@github.com:' +  keyWord + '.git'	# 将仓库获取到本地	result = os.popen(GetRepCommand).readlines()# 将资源文件放入仓库def FillRepository(info):	AllFileName = os.listdir('./')	PreReadMeFile = ''	for FileName in AllFileName:		if FileName[-3:] == '.md':			PreReadMeFile = FileName	# 将md文件替换原有的README.md	ReplaceMdFileCommand = 'cp ./' + PreReadMeFile + ' ./'+ info['GitHubRepositoryName'] + '/README.md'	print("==>", ReplaceMdFileCommand, "<==")	result = os.popen(ReplaceMdFileCommand).readlines()	# 将resource文件夹, 放入仓库中	RemoveResourceCommand = 'cp -r resource ' + './' + info['GitHubRepositoryName']	print('RemoveResourceCommand==>', RemoveResourceCommand)	result = os.popen(RemoveResourceCommand).readlines()# 将文件提交到仓库def PushRepository(info):	inputRepository = 'cd ' + info['GitHubRepositoryName']	addCommand = 'git add .'	result = os.popen(inputRepository+'\n'+addCommand).readlines()	commitCommand = 'git commit -m "完成项目的初始化"'	result = os.popen(inputRepository+'\n'+commitCommand).readlines()	pushCommand = 'git push'	result = os.popen(inputRepository+'\n'+pushCommand).readlines()	print("完成")def main():	# 获取信息	info = getInfo()	# 创建仓库, 并通过ssh保存到本地	CreateRepository(info)	# 将仓库git到本地	GetRepository(info)	# 将资源文件转入代码仓库	FillRepository(info)	# 将资源提交到仓库	PushRepository(info)if __name__ == '__main__':	main()复制代码
2. 配置文件
{	# 用户名	"GitHubUserName": "zhaoolee", 	# 用户密码	"GitHubPassWord": "github", 	# 将要新建的仓库	"GitHubRepositoryName": "TestCreateRep"}复制代码

为便于管理, 相关资源整合到一张独立的帖子,链接如下:

转载地址:http://qtjpo.baihongyu.com/

你可能感兴趣的文章
【BZOJ】3832: [Poi2014]Rally
查看>>
[转]看懂ExtJS的API
查看>>
宜昌民生大厦
查看>>
推荐15款制作 SVG 动画的 JavaScript 库
查看>>
转:OpenResty最佳实践(推荐了解lua语法)
查看>>
转:CEO, CFO, CIO, CTO, CSO是什么
查看>>
P2P之UDP穿透NAT的原理与实现 - 增强篇(附修改过的源代码)
查看>>
添加 All Exceptions 断点后, 每次运行都会在 main.m 中断的一种解决方法
查看>>
ROC曲线(receiver-operating-characteristic curve)-阈值评价标准(转)
查看>>
Swift 表达式
查看>>
FFmpeg(8)-打开音视频解码器,配置解码器上下文(avcodec_find_decoder()、avcodec_alloc_context3())...
查看>>
andriod自定义视图
查看>>
linux下vim更改注释颜色
查看>>
在SSL / https下托管SignalR
查看>>
Using JRuby with Maven
查看>>
poj 3308 (最大流)
查看>>
Netty了解与小试
查看>>
醒醒吧少年,只用Cucumber不能帮助你BDD
查看>>
一名女程序员对iOS的想法
查看>>
Cloud Native未来值得关注的方向:Service Mesh简介
查看>>