Gentoo Archives: gentoo-commits

From: "Robin H. Johnson" <robbat2@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/qa-scripts:master commit in: /
Date: Sun, 31 May 2020 06:39:11
Message-Id: 1590907138.dacd3b42154210e1d50fbe947a9bf9a7136d3081.robbat2@gentoo
1 commit: dacd3b42154210e1d50fbe947a9bf9a7136d3081
2 Author: Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
3 AuthorDate: Sun May 31 06:38:58 2020 +0000
4 Commit: Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
5 CommitDate: Sun May 31 06:38:58 2020 +0000
6 URL: https://gitweb.gentoo.org/proj/qa-scripts.git/commit/?id=dacd3b42
7
8 genrdeps-index: safely create/overwrite rdeps tarball
9
10 Signed-off-by: Robin H. Johnson <robbat2 <AT> gentoo.org>
11
12 genrdeps-index.py | 25 +++++++++++++++++++------
13 1 file changed, 19 insertions(+), 6 deletions(-)
14
15 diff --git a/genrdeps-index.py b/genrdeps-index.py
16 index 1f0b24c..feea62c 100755
17 --- a/genrdeps-index.py
18 +++ b/genrdeps-index.py
19 @@ -11,6 +11,7 @@ import os.path
20 import shutil
21 import subprocess
22 import sys
23 +import tempfile
24
25 import pkgcore.config
26 from pkgcore.ebuild.atom import atom
27 @@ -102,12 +103,24 @@ def main():
28 os.rename(newdir, outdir)
29 shutil.rmtree(olddir, onerror=rmtree_ignore_enoent)
30
31 - subprocess.check_call(
32 - ['tar', '-cf', 'rdeps.tar'] + [gi for g, gi in GROUPS],
33 - cwd=args.outputdir)
34 - subprocess.check_call(
35 - ['xz', '-9', 'rdeps.tar'],
36 - cwd=args.outputdir)
37 + with tempfile.NamedTemporaryFile(prefix='.tmp.rdeps-', suffix='.tar', dir=args.outputdir, delete=False) as tmpf:
38 + try:
39 + subprocess.check_call(
40 + ['tar', '-cf', tmpf.name] + [gi for g, gi in GROUPS],
41 + cwd=args.outputdir)
42 + subprocess.check_call(
43 + ['xz', '-9', tmpf.name],
44 + cwd=args.outputdir)
45 + os.rename(tmpf.name + '.xz', os.path.join(args.outputdir, 'rdeps.tar.xz'))
46 + except Exception as e:
47 + raise e
48 + finally:
49 + # Cleanup:
50 + for f in [tmpf.name, (tmpf.name + '.xz')]:
51 + try:
52 + os.unlink(f)
53 + except FileNotFoundError as e:
54 + pass
55
56 return 0