1 import argparse 2 import os 3 import requests 4 5 6 HEADERS = { 7 ‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 ‘ 8 ‘(KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36‘ 9 } 10 11 ext_url="https://{0}.gallery.vsassets.io/_apis/public/gallery/publisher/{1}/extension/{2}/{3}/assetbyname/Microsoft.VisualStudio.Services.VSIXPackage" 12 13 def download_ext(publisher,name,ver): 14 url=ext_url.format(publisher,publisher,name,ver) 15 print(url) 16 res=requests.get(url,headers=HEADERS) 17 res.raise_for_status() 18 playFile = open(publisher+‘.‘+name+‘.vsix‘, ‘wb‘) 19 for chunk in res.iter_content(1024): 20 playFile.write(chunk) 21 playFile.close() 22 23 24 def arg_parse(): 25 parse=argparse.ArgumentParser(description=‘VSCode Extension Download CLI Tools‘) 26 parse.add_argument("-i",‘--identifier‘,type=str,help=‘extension unique identifier‘) 27 parse.add_argument(‘-v‘,‘--version‘,type=str,help=‘extension version‘) 28 return parse 29 30 def command_parse(): 31 parse=arg_parse() 32 args=vars(parse.parse_args()) 33 print(args) 34 35 key=args["identifier"] 36 37 index=key.find(‘.‘) 38 publisher=key[:index] 39 name=key[index+1:] 40 download_ext(publisher,name,args[‘version‘]) 41 42 43 if __name__ == "__main__": 44 command_parse() 45