diff --git a/.gitignore b/.gitignore index c09e8c029294..062b94e24e53 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ out/ vendor/ *.xcodeproj *.swp +*.pyc diff --git a/script/lib/__init__.py b/script/lib/__init__.py new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/script/lib/util.py b/script/lib/util.py new file mode 100644 index 000000000000..b71e5838be8d --- /dev/null +++ b/script/lib/util.py @@ -0,0 +1,53 @@ +import atexit +import shutil +import tarfile +import tempfile +import urllib2 + + +def download(text, url, filename): + directory = tempfile.mkdtemp(prefix='atom-shell-') + atexit.register(shutil.rmtree, directory) + + web_file = urllib2.urlopen(url) + file_size = int(web_file.info().getheaders("Content-Length")[0]) + downloaded_size = 0 + block_size = 128 + + with open(os.path.join(directory, filename), 'w+') as local_file: + while True: + buf = web_file.read(block_size) + if not buf: + break + + downloaded_size += len(buf) + local_file.write(buf) + + percent = downloaded_size * 100. / file_size + status = "\r%s %10d [%3.1f%%]" % (text, downloaded_size, percent) + print status, + + print + + return directory + + +def extract_tarball(tarball_path, member, path): + with tarfile.open(tarball_path) as tarball: + tarball.extract(member, path) + + +def safe_unlink(path): + try: + os.unlink(path) + except OSError as e: + if e.errno != errno.ENOENT: + raise + + +def safe_mkdir(path): + try: + os.makedirs(path) + except OSError as e: + if e.errno != errno.EEXIST: + raise diff --git a/script/update-node b/script/update-node index c406cfaff2ed..bfa2aa07492d 100755 --- a/script/update-node +++ b/script/update-node @@ -1,15 +1,12 @@ #!/usr/bin/env python import argparse -import atexit import errno -import shutil import subprocess import sys -import tarfile -import tempfile import os -import urllib2 + +from lib.util import * SOURCE_ROOT = os.path.dirname(os.path.dirname(__file__)) @@ -78,53 +75,5 @@ def copy_node(node_path): os.rename(node_path, node) -def download(text, url, filename): - directory = tempfile.mkdtemp(prefix='atom-shell-') - atexit.register(shutil.rmtree, directory) - - web_file = urllib2.urlopen(url) - file_size = int(web_file.info().getheaders("Content-Length")[0]) - downloaded_size = 0 - block_size = 128 - - with open(os.path.join(directory, filename), 'w+') as local_file: - while True: - buf = web_file.read(block_size) - if not buf: - break - - downloaded_size += len(buf) - local_file.write(buf) - - percent = downloaded_size * 100. / file_size - status = "\r%s %10d [%3.1f%%]" % (text, downloaded_size, percent) - print status, - - print - - return directory - - -def extract_tarball(tarball_path, member, path): - with tarfile.open(tarball_path) as tarball: - tarball.extract(member, path) - - -def safe_unlink(path): - try: - os.unlink(path) - except OSError as e: - if e.errno != errno.ENOENT: - raise - - -def safe_mkdir(path): - try: - os.makedirs(path) - except OSError as e: - if e.errno != errno.EEXIST: - raise - - if __name__ == '__main__': sys.exit(main())