8ab7d9f7ba
This should make it possible to only import the library only when it's really needed. DNF does not work with libmodulemd v2. If we import libmodulemd2 and then dnf, the program will just hang forever. We only need DNF in pungi-gather, where libmodulemd is not needed, and also where we do need libmodulemd, we don't have DNF. Signed-off-by: Lubomír Sedlář <lsedlar@redhat.com>
29 lines
998 B
Python
29 lines
998 B
Python
# -*- coding: utf-8 -*-
|
|
|
|
import os
|
|
import re
|
|
|
|
|
|
def get_full_version():
|
|
"""
|
|
Find full version of Pungi: if running from git, this will return cleaned
|
|
output of `git describe`, otherwise it will look for installed version.
|
|
"""
|
|
location = os.path.join(os.path.dirname(os.path.realpath(__file__)), '..')
|
|
if os.path.isdir(os.path.join(location, '.git')):
|
|
import subprocess
|
|
proc = subprocess.Popen(['git', '--git-dir=%s/.git' % location, 'describe', '--tags'],
|
|
stdout=subprocess.PIPE, universal_newlines=True)
|
|
output, _ = proc.communicate()
|
|
return re.sub(r'-1.fc\d\d?', '', output.strip().replace('pungi-', ''))
|
|
else:
|
|
import subprocess
|
|
proc = subprocess.Popen(
|
|
["rpm", "-q", "pungi"], stdout=subprocess.PIPE, universal_newlines=True
|
|
)
|
|
(output, err) = proc.communicate()
|
|
if not err:
|
|
return output.rstrip()
|
|
else:
|
|
return 'unknown'
|