mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
55 lines
1.3 KiB
Python
55 lines
1.3 KiB
Python
![]() |
#! /bin/env python
|
||
|
|
||
|
import argparse
|
||
|
import os
|
||
|
import sys
|
||
|
import tarfile
|
||
|
from os.path import abspath, dirname, join
|
||
|
from shutil import copy
|
||
|
from subprocess import check_call
|
||
|
|
||
|
parser = argparse.ArgumentParser(description="Build salt rpms")
|
||
|
parser.add_argument(
|
||
|
"buildid",
|
||
|
help="The build id to use i.e. the bit after the salt version in the package name",
|
||
|
)
|
||
|
args = parser.parse_args()
|
||
|
|
||
|
src = abspath(join(dirname(__file__), "../.."))
|
||
|
|
||
|
sys.path.append(src)
|
||
|
|
||
|
import salt.version # isort:skip
|
||
|
|
||
|
salt_version = salt.version.__saltstack_version__.string
|
||
|
|
||
|
rpmbuild = join(os.environ["HOME"], "rpmbuild")
|
||
|
copy(join(src, "pkg/rpm/salt.spec"), join(rpmbuild, "SPECS"))
|
||
|
for f in os.listdir(join(src, "pkg/rpm")):
|
||
|
if f in ["salt.spec", "build.py"]:
|
||
|
continue
|
||
|
copy(join(src, "pkg/rpm", f), join(rpmbuild, "SOURCES"))
|
||
|
|
||
|
|
||
|
def srcfilter(ti):
|
||
|
if "/.git" in ti.name:
|
||
|
return None
|
||
|
return ti
|
||
|
|
||
|
|
||
|
with tarfile.open(
|
||
|
join(rpmbuild, "SOURCES/salt-%s.tar.gz" % salt_version), "w|gz"
|
||
|
) as tf:
|
||
|
tf.add(src, arcname="salt-%s" % salt_version, filter=srcfilter)
|
||
|
|
||
|
|
||
|
cmd = [
|
||
|
"rpmbuild",
|
||
|
"-bb",
|
||
|
"--define=salt_version %s" % salt_version,
|
||
|
"--define=buildid %s" % args.buildid,
|
||
|
"salt.spec",
|
||
|
]
|
||
|
print("Executing: %s" % " ".join('"%s"' % c for c in cmd))
|
||
|
check_call(cmd, cwd=join(rpmbuild, "SPECS"))
|