Advertisement
Guest User

Untitled

a guest
Jan 5th, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. # pack
  2.  
  3. import requests
  4. from requests.auth import HTTPBasicAuth
  5. from tqdm import tqdm
  6. import os
  7. import sys
  8.  
  9.  
  10. user = 'santaf@gmail.com'
  11. password = 'Pqntslc0$'
  12.  
  13. def doDownload(url, file_name):
  14.  
  15. r = requests.get(url, auth=HTTPBasicAuth(user, password))
  16.  
  17. so_far = 0
  18. total = int(r.headers['Content-Length'])
  19. # print "# using chunk size =", chunk_size
  20. try:
  21. with tqdm(total=total) as pbar:
  22. with open(file_name, 'wb') as fd:
  23. for chunk in r.iter_content(chunk_size=1):
  24. so_far += len(chunk)
  25. fd.write(chunk)
  26. pbar.update(len(chunk))
  27.  
  28. except Exception as e:
  29. pass
  30. finally:
  31. if so_far == total:
  32. downloaded = True
  33. return True
  34. else:
  35. if os.path.exists(file_name):
  36. print '# did not download file entirely, will delete', file_name
  37. os.remove(file_name)
  38. return False
  39.  
  40.  
  41. if len(sys.argv) < 3:
  42. print "use: script <TAG> <DEST>"
  43. sys.exit(-1)
  44.  
  45. # get tag
  46. TAG = sys.argv[1]
  47. DEST = sys.argv[2]
  48. # log
  49. print "# using tag", TAG
  50.  
  51. URL_BASE="https://bitbucket.org/francosantapy"
  52. REPO="api_set"
  53. REMOTE_FILE = URL_BASE + "/" + REPO + "/get/" + TAG + ".zip"
  54. print REMOTE_FILE
  55. file_name = '' + TAG + '.zip'
  56. ret = doDownload(REMOTE_FILE, file_name);
  57. if ret is False:
  58. print "download failed"
  59. sys.exit(-1)
  60.  
  61. import zipfile
  62.  
  63. print "# uncompressing", file_name
  64. zip_ref = zipfile.ZipFile(file_name, 'r')
  65. zip_ref.extractall("./vamos_rafa")
  66. zip_ref.close()
  67. print "# deleting", file_name
  68. os.remove(file_name)
  69.  
  70. folder_name = None
  71. for f in os.listdir('./vamos_rafa'):
  72. import re
  73. match = re.search('api_set', f)
  74. if match is not None and match.group(0) == 'api_set':
  75. folder_name = './vamos_rafa/' + f
  76. print "# using", folder_name
  77. break
  78.  
  79. if folder_name is None:
  80. print "internal error, could not find folder"
  81. sys.exit(-1)
  82.  
  83. print "# deleting", DEST
  84. try:
  85. os.remove(DEST+"/api_set")
  86. except OSError as e:
  87. pass
  88.  
  89. print "# copy all new data to", DEST
  90. import shutil
  91. shutil.copytree(folder_name, DEST + "/api_set")
  92.  
  93.  
  94.  
  95.  
  96. # echo "Downloading remote $REMOTE_FILE"
  97. # curl --user $USER:$PASS $REMOTE_FILE -o $TAG.tar.gz
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement