detect default distribution target based on os-release(5)
Merges: https://pagure.io/fedora-rust/rust2rpm/pull-request/46 Signed-off-by: Neal Gompa <ngompa13@gmail.com>
This commit is contained in:
parent
3feda71385
commit
0cd2ec0298
1 changed files with 25 additions and 1 deletions
|
@ -23,6 +23,30 @@ JINJA_ENV = jinja2.Environment(loader=jinja2.ChoiceLoader([
|
||||||
jinja2.PackageLoader('rust2rpm', 'templates'), ]),
|
jinja2.PackageLoader('rust2rpm', 'templates'), ]),
|
||||||
trim_blocks=True, lstrip_blocks=True)
|
trim_blocks=True, lstrip_blocks=True)
|
||||||
|
|
||||||
|
def detect_distro():
|
||||||
|
with open("/etc/os-release") as os_release_file:
|
||||||
|
os_release_dict = {}
|
||||||
|
for line in os_release_file:
|
||||||
|
key, value = line.rstrip().split('=')
|
||||||
|
os_release_dict[key] = value.strip('"')
|
||||||
|
return os_release_dict
|
||||||
|
|
||||||
|
def get_default_target():
|
||||||
|
distro_release = detect_distro()
|
||||||
|
distro_family = distro_release.get("ID_LIKE")
|
||||||
|
distro_id = distro_release.get("ID")
|
||||||
|
if distro_family is None:
|
||||||
|
distro_family = ""
|
||||||
|
# Order matters here!
|
||||||
|
if distro_id == "mageia" or ("mageia" in distro_family):
|
||||||
|
return "mageia"
|
||||||
|
elif distro_id == "fedora" or ("fedora" in distro_family):
|
||||||
|
return "fedora"
|
||||||
|
elif "suse" in distro_family:
|
||||||
|
return "opensuse"
|
||||||
|
else:
|
||||||
|
return "plain"
|
||||||
|
|
||||||
def detect_editor():
|
def detect_editor():
|
||||||
terminal = os.getenv("TERM")
|
terminal = os.getenv("TERM")
|
||||||
terminal_is_dumb = terminal is None or terminal == "dumb"
|
terminal_is_dumb = terminal is None or terminal == "dumb"
|
||||||
|
@ -60,7 +84,7 @@ def main():
|
||||||
parser.add_argument("-", "--stdout", action="store_true",
|
parser.add_argument("-", "--stdout", action="store_true",
|
||||||
help="Print spec and patches into stdout")
|
help="Print spec and patches into stdout")
|
||||||
parser.add_argument("-t", "--target", action="store",
|
parser.add_argument("-t", "--target", action="store",
|
||||||
choices=("plain", "fedora", "mageia", "opensuse"), default="fedora",
|
choices=("plain", "fedora", "mageia", "opensuse"), default=get_default_target(),
|
||||||
help="Distribution target")
|
help="Distribution target")
|
||||||
parser.add_argument("-p", "--patch", action="store_true",
|
parser.add_argument("-p", "--patch", action="store_true",
|
||||||
help="Do initial patching of Cargo.toml")
|
help="Do initial patching of Cargo.toml")
|
||||||
|
|
Loading…
Reference in a new issue