Skip to content

Commit 72275f4

Browse files
committed
import_srpm: allow to pass a url as source file
Signed-off-by: Gaëtan Lehmann <[email protected]>
1 parent 1b9c715 commit 72275f4

File tree

1 file changed

+23
-6
lines changed

1 file changed

+23
-6
lines changed

scripts/import_srpm.py

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,21 @@
33
import logging
44
import os
55
import subprocess
6+
from urllib.parse import urlparse
7+
from urllib.request import urlretrieve
8+
69

710
def call_process(args):
811
logging.debug("$ %s", args)
912
subprocess.check_call(args)
1013

14+
def is_url(url_string):
15+
try:
16+
result = urlparse(url_string)
17+
return all([result.scheme, result.netloc])
18+
except ValueError:
19+
return False
20+
1121
def main():
1222
parser = argparse.ArgumentParser(description='Imports the contents of a source RPM into a git repository')
1323
parser.add_argument('source_rpm', help='local path to source RPM')
@@ -28,12 +38,19 @@ def main():
2838
}[args.verbose]
2939
logging.basicConfig(format='[%(levelname)s] %(message)s', level=loglevel)
3040

41+
source_rpm = args.source_rpm
42+
if is_url(source_rpm):
43+
# get the src.rpm locally, and continue with the actual file
44+
local_filename = f'/tmp/{os.path.basename(source_rpm)}'
45+
urlretrieve(source_rpm, local_filename)
46+
source_rpm = local_filename
47+
3148
# check that the source RPM file exists
32-
if not os.path.isfile(args.source_rpm):
33-
parser.error("File %s does not exist." % args.source_rpm)
34-
if not args.source_rpm.endswith('.src.rpm'):
35-
parser.error("File %s does not appear to be a source RPM." % args.source_rpm)
36-
source_rpm_abs = os.path.abspath(args.source_rpm)
49+
if not os.path.isfile(source_rpm):
50+
parser.error("File %s does not exist." % source_rpm)
51+
if not source_rpm.endswith('.src.rpm'):
52+
parser.error("File %s does not appear to be a source RPM." % source_rpm)
53+
source_rpm_abs = os.path.abspath(source_rpm)
3754

3855
# enter repository directory
3956
if not os.path.isdir(args.repository):
@@ -107,7 +124,7 @@ def main():
107124
if not has_changes:
108125
print("\nWorking copy has no modifications. Nothing to commit. No changes from previous release?\n")
109126
else:
110-
msg = 'Import %s' % os.path.basename(args.source_rpm)
127+
msg = 'Import %s' % os.path.basename(source_rpm)
111128
if deleted:
112129
msg += "\n\nFiles deleted for legal reasons:\n - " + '\n - '.join(deleted)
113130
call_process(['git', 'commit', '-s', '-m', msg])

0 commit comments

Comments
 (0)