This repository has been archived by the owner on Aug 2, 2022. It is now read-only.
/
build.py
executable file
·105 lines (76 loc) · 2.41 KB
/
build.py
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/usr/bin/env python2.7
#
# just-install - The stupid package installer
#
# Copyright (C) 2013-2016 Lorenzo Villani
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
from __future__ import print_function
import glob
import os
import shutil
import sys
from subprocess import check_output as get_output
from subprocess import check_call
HERE = os.path.dirname(__file__)
if sys.platform == "win32":
EXE = "just-install.exe"
else:
EXE = "just-install"
def main():
setup()
clean()
build()
if sys.platform == "win32":
build_msi()
if "CI" in os.environ:
appveyor()
def setup():
call("go", "get", "-u", "github.com/kardianos/govendor")
call("govendor", "sync")
def clean():
def remove(*args):
for f in args:
try:
os.remove(f)
except:
pass
remove("just-install")
remove(*glob.glob("*.exe"))
remove(*glob.glob("*.msi"))
remove(*glob.glob("*.wixobj"))
remove(*glob.glob("*.wixpdb"))
def build():
version = get_output(["git", "describe", "--tags"])
# This environment variable is used in just-install.wxs
os.environ["JustInstallVersion"] = version[1:6]
if "CI" in os.environ:
os.environ["GOARCH"] = "386"
if "--skip-tests" not in sys.argv:
call("go", "test", "-v")
call("go", "build", "-o", EXE, "-ldflags", "-X main.version={}".format(version), "./bin")
def build_msi():
call("candle", "just-install.wxs")
call("light", "just-install.wixobj")
def appveyor():
if "APPVEYOR_REPO_TAG_NAME" not in os.environ:
return
tag = os.environ["APPVEYOR_REPO_TAG_NAME"]
shutil.move("just-install.exe", "just-install-{}.exe".format(tag))
shutil.move("just-install.msi", "just-install-{}.msi".format(tag))
def call(*args):
print("+", " ".join(args))
check_call(args)
if __name__ == "__main__":
main()