当前位置: 首页 > news >正文

【小软件】创建临时代码仓

python写了个小软件,用于创建临时代码仓,并用pycharm打开

 

import os
import ctypes
import logging
import tempfile
from functools import lru_cache
from tkinter import *
from glob import glob
import subprocess as sp
from threading import Thread
from datetime import datetimectypes.windll.shcore.SetProcessDpiAwareness(True)
logging.basicConfig(level=logging.DEBUG)def download_repo(repo_link, temp_folder=None, branch='master'):temp_folder = temp_folder or tempfile.TemporaryDirectory()tf_name = temp_folder if type(temp_folder) is str else temp_folder.nameproject_name = repo_link.split('/')[-1].rstrip('.git')  # 提取项目名称logging.debug(f'项目名称提取:{project_name}')# 本地项目顶层目录路径repo_folder = os.path.join(tf_name, f'{project_name}_{branch}_{datetime.now().strftime("%m_%d_%H_%M")}')logging.info(f'临时项目储存目录:{repo_folder}')logging.info(f'分支:{branch}')p = sp.Popen(['git', 'clone', repo_link, repo_folder.replace('\\', '/'), '-b', branch,],)p.wait()return repo_folder@lru_cache(maxsize=8)
def get_pycharm_cmd():possibles = [r"C:\Program Files\JetBrains\PyCharm*\bin\pycharm.bat",r'C:\**\JetBrains\PyCharm*\bin\pycharm.bat',r'C:\**\pycharm.bat',r'D:\**\pycharm.bat',]for path in possibles:result = glob(path, recursive=True)logging.debug(f'搜索pycharm.bat路径:{path}\n结果:{result}')if result:return result[0]def open_in_pycharm(project_folder):p = sp.Popen([get_pycharm_cmd(), project_folder],)p.wait()def main():r = Tk()default_title = '创建临时仓库'r.title(default_title)r.geometry('600x100+1000+500')info_frame = Frame(r)info_frame.pack(side=TOP, fill=BOTH, expand=True)info_frame.columnconfigure(1, weight=1)for i in range(3):info_frame.rowconfigure(i, weight=1)Label(info_frame, text='仓库链接').grid(row=0, column=0, sticky='swen')Label(info_frame, text='分支').grid(row=1, column=0, sticky='swen')Label(info_frame, text='存放目录').grid(row=2, column=0, sticky='swen')es = []for i in range(3):es.append(Entry(info_frame, ))for index, e in enumerate(es):e.grid(row=index, column=1, sticky='swen')# 填写默认分支es[1].insert(0, 'master')# 填写临时目录temp_folder = tempfile.TemporaryDirectory()es[2].insert(0, temp_folder.name)def start():r.title('克隆仓库中')repo_folder = download_repo(es[0].get(), branch=es[1].get(), temp_folder=es[2].get())r.title('打开仓库中')open_in_pycharm(repo_folder)r.title(default_title)b = Button(r, text='开始', command=Thread(target=start, daemon=True).start)b.pack(side=BOTTOM, fill=X)r.mainloop()if __name__ == '__main__':main()

 

http://www.sczhlp.com/news/30669/

相关文章:

  • 怎么跟网站建设公司谈腾讯企业邮箱
  • 任丘做网站价格网络营销策划推广公司
  • 深圳做网站要网络营销和直播电商专业学什么
  • conda创建一个干净的虚拟环境
  • 配置SLF4J日志输出到D盘logs目录和控制台
  • 广州网站建设 易点廊坊seo关键词排名
  • 四川住房与城乡城乡建设厅网站公司网址怎么注册
  • 网站弹出qq聊天窗口附近电脑培训班零基础
  • 东莞做网站要多少钱发帖百度秒收录网站分享
  • 淄博网站优化公司百度官网链接
  • 安徽合肥市城乡建设委员会网站建站seo推广
  • wordpress入门教程8做seo推广一年大概的费用
  • 嘉鱼网站建设公司临沂网站seo
  • 门户网站建设公司流程搜索引擎成功案例分析
  • 深圳自适应网站建设百度投诉中心24小时电话
  • 成都有实力的网站建设seo入门基础教程
  • 济南网站建设泉诺seo数据优化教程
  • 驻马店 网站制作免费推广的方式有哪些
  • 汕头网站建设报价百度指数排行榜
  • 深圳企业医疗网站建设营销网
  • 中山移动网站设计优化电脑的软件有哪些
  • 河源网站建设工作室独立站seo
  • 专题:2025智能体研究报告|附70份报告PDF、原数据表汇总下载
  • js逆向之webpack自吐模块设置方式
  • 哪个公司做网站佛山网站建设正规公司
  • 深圳网站商城建设沈阳百度推广排名优化
  • java门户网站开发教程最新的域名网站
  • 在百度做推广送网站好吗网络营销常用工具
  • 如何用普通电脑做网站服务器百度pc网页版入口
  • 企业门户网站什么意思疫情最新消息今天