1919parser = argparse .ArgumentParser (description = 'Git加速工具,支持镜像源和代理' )
2020parser .add_argument ('command' , type = str , help = 'git命令, 或是fgit命令' )
2121parser .add_argument ('--use-proxy' , type = str , help = '设置HTTP代理(格式: http://[user:pass@]host:port)' )
22+ parser .add_argument ('--branch' , type = str , help = '分支名(仅在download命令时有效)' , default = 'main' )
23+
2224parser .add_argument ('--verbose' , action = 'store_true' , help = '显示详细输出' )
2325args , unknown_args = parser .parse_known_args ()
2426
@@ -45,7 +47,7 @@ def main():
4547 logger .debug (Fore .CYAN + f"命令参数: { ' ' .join (sys .argv )} " + Style .RESET_ALL )
4648
4749
48- if args .command == 'download-zip ' :
50+ if args .command == 'download' :
4951 handle_download_zip (args , unknown_args , config , env , args .verbose )
5052 return
5153
@@ -66,7 +68,7 @@ def handle_download_zip(args, unknown_args, config, env, verbose):
6668 if not downloader_config :
6769 logger .warning (Fore .YELLOW + "🧐 下载配置不存在, 使用默认配置" + Style .RESET_ALL )
6870 chunk_size = downloader_config .get ('chunk_size' , 1024 )
69- MIN_FILE_SIZE = downloader_config .get ('min_file_size' , 1 )
71+ MIN_FILE_SIZE = downloader_config .get ('min_file_size' , 100 )
7072
7173 original_url = unknown_args [0 ]
7274 if '://' not in original_url and '/' in original_url :
@@ -89,9 +91,9 @@ def handle_download_zip(args, unknown_args, config, env, verbose):
8991
9092 mirror_list = select_mirror (config , args .verbose )
9193 for mirror in mirror_list :
92- new_url = convert_url (original_url , mirror ) + '/archive/refs/heads/main .zip'
94+ new_url = convert_url (original_url , mirror ) + f '/archive/refs/heads/{ args . branch } .zip'
9395 logger .info (Fore .GREEN + f"🔄 尝试镜像源 { mirror } [{ mirror_list .index (mirror ) + 1 } /{ len (mirror_list )} ]: { new_url } " + Style .RESET_ALL )
94- if download_file (new_url , os .path .join (os .getcwd (), repo_name + ' .zip' ), chunk_size = chunk_size , MIN_FILE_SIZE = MIN_FILE_SIZE ):
96+ if download_file (new_url , os .path .join (os .getcwd (), f' { repo_name } - { args . branch } .zip' ), chunk_size = chunk_size , MIN_FILE_SIZE = MIN_FILE_SIZE ):
9597 return
9698 logger .error (Fore .RED + "❌ 所有镜像源尝试失败" + Style .RESET_ALL )
9799 return
0 commit comments