forked from CalumJEadie/microbuild
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexample.py
More file actions
72 lines (50 loc) · 1.57 KB
/
example.py
File metadata and controls
72 lines (50 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import os
import shutil
import zipfile
import requests
from async_tasks.async_tasks import task, run, TeamCityLogger
dir = './temp/'
def load_file(url, name):
response = requests.get(url, stream=True)
with open(dir + name, "wb") as handle:
handle.write(response.content)
return dir + name
@task()
def create_temp_dir(logger):
if not os.path.exists(dir):
logger("create temp dir")
os.makedirs(dir)
else:
logger("clear temp dir")
shutil.rmtree(dir)
os.makedirs(dir)
@task(create_temp_dir)
def load_logo():
file_address = load_file("https://avatars1.githubusercontent.com/u/13404754?v=3&s=460", "punksta_logo.png")
return file_address
@task(create_temp_dir)
def load_content():
file_address = load_file("https://raw.githubusercontent.com/punksta/async_tasks/master/example.py", "example.py")
return file_address
@task(load_content, load_logo)
def log_result(logger):
for name in [load_content.result, load_logo.result]:
logger(name + " loaded")
@task(load_content, load_logo)
def zip_result(logger):
zf = zipfile.ZipFile(dir + 'result.zip', mode='w')
logger("zip loaded files into" + dir + 'result.zip')
try:
zf.write(load_content.result)
zf.write(load_logo.result)
finally:
zf.close()
zipped = [load_content.result, load_logo.result]
return zipped
@task(log_result, zip_result)
def clear_files(logger):
logger('clear zipped files')
for file in zip_result.result:
os.remove(file)
pass
run(clear_files, 2, TeamCityLogger())