From d96f7e5cf00bb45206cb529969ed80895d08bcaa Mon Sep 17 00:00:00 2001 From: bigeagle Date: Mon, 23 Jan 2017 23:35:05 +0800 Subject: [PATCH] stackage: improve code format and flush msg --- stackage.py | 61 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 20 deletions(-) diff --git a/stackage.py b/stackage.py index 32193bf..fe483f3 100755 --- a/stackage.py +++ b/stackage.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 -u +#!/usr/bin/env python3 # python deps: requests, pyyaml # non-python deps: aria2, git @@ -20,7 +20,7 @@ class StackageSession(object): if force and file_path.is_file(): file_path.unlink() if file_path.is_file(): - print('{} exists, skipping'.format(file_path)) + print('{} exists, skipping'.format(file_path), flush=True) else: args = ['aria2c', url, '--dir={}'.format(dir_path)] if sha1: @@ -29,27 +29,43 @@ class StackageSession(object): file_path.unlink() raise OSError('Download failed for {}'.format(url)) else: - print('Downloaded {} to {}'.format(url, file_path)) + print('Downloaded {} to {}'.format(url, file_path), flush=True) def load_stack_setup(self): - d = yaml.load(requests.get( - 'https://raw.githubusercontent.com/fpco/stackage-content/master/stack/stack-setup-2.yaml').content) + d = yaml.load( + requests + .get('https://raw.githubusercontent.com/fpco/stackage-content/master/stack/stack-setup-2.yaml') + .content + ) for platform in d['ghc']: for ver in d['ghc'][platform]: - self.download('ghc', d['ghc'][platform][ver]['url'], d['ghc'][platform][ver]['sha1']) - d['ghc'][platform][ver]['url'] = 'http://mirrors.tuna.tsinghua.edu.cn/stackage/ghc/{}'.format( - d['ghc'][platform][ver]['url'].split('/')[-1]) - d['msys2'] = {'windows32': {'version': '20161025', - 'url': 'http://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/i686/msys2-base-i686-20161025.tar.xz', - 'content-length': 47526500, - 'sha1': '5D17FA53077A93A38A9AC0ACB8A03BF6C2FC32AD'}, - 'windows64': {'version': '20161025', - 'url': 'http://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/x86_64/msys2-base-x86_64-20161025.tar.xz', - 'content-length': 47166584, - 'sha1': '05FD74A6C61923837DFFE22601C9014F422B5460'}} + self.download( + 'ghc', + d['ghc'][platform][ver]['url'], + d['ghc'][platform][ver]['sha1'], + ) + d['ghc'][platform][ver]['url'] = ( + 'http://mirrors.tuna.tsinghua.edu.cn/stackage/ghc/{}' + .format(d['ghc'][platform][ver]['url'].split('/')[-1]) + ) + + d['msys2'] = { + 'windows32': { + 'version': '20161025', + 'url': 'http://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/i686/msys2-base-i686-20161025.tar.xz', + 'content-length': 47526500, + 'sha1': '5D17FA53077A93A38A9AC0ACB8A03BF6C2FC32AD', + }, + 'windows64': { + 'version': '20161025', + 'url': 'http://mirrors.tuna.tsinghua.edu.cn/msys2/distrib/x86_64/msys2-base-x86_64-20161025.tar.xz', + 'content-length': 47166584, + 'sha1': '05FD74A6C61923837DFFE22601C9014F422B5460', + } + } with open(self._base_path / 'stack-setup.yaml', 'w') as f: yaml.dump(d, f) - print('Loaded stack-setup.yaml') + print('Loaded stack-setup.yaml', flush=True) def load_stackage_snapshots(self): for channel in ['lts-haskell', 'stackage-nightly']: @@ -59,9 +75,14 @@ class StackageSession(object): args = ['git', '-C', self._base_path, 'clone', '--depth', '1', 'https://github.com/fpco/{}.git'.format(channel)] subprocess.run(args, check=True) - print('Loaded {}'.format(channel)) - self.download('', 'https://www.stackage.org/download/snapshots.json', force=True) - print('Loaded snapshots.json') + print('Loaded {}'.format(channel), flush=True) + + self.download( + '', + 'https://www.stackage.org/download/snapshots.json', + force=True, + ) + print('Loaded snapshots.json', flush=True) if __name__ == '__main__':