File: version.py

package info (click to toggle)
game-data-packager 87
  • links: PTS, VCS
  • area: contrib
  • in suites: forky, sid
  • size: 33,392 kB
  • sloc: python: 15,387; sh: 704; ansic: 95; makefile: 50
file content (95 lines) | stat: -rw-r--r-- 2,606 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
# encoding=utf-8

# Copyright 2015-2022 Simon McVittie
# Copyright 2015-2016 Alexandre Detiste
# SPDX-License-Identifier: GPL-2.0-or-later

# This version of this file is only used when run uninstalled. It is replaced
# with a generated version during installation.

import os

srcdir = os.path.dirname(
    os.path.dirname(
        os.path.abspath(__file__)
    )
)

with open(os.path.join(srcdir, 'debian', 'changelog'), encoding='utf-8') as fd:
    try:
        from debian.changelog import Changelog
    except ImportError:
        GAME_PACKAGE_VERSION = fd.readline().split('(', 1)[1].split(')', 1)[0]
        if '-' in GAME_PACKAGE_VERSION:
            GAME_PACKAGE_VERSION, GAME_PACKAGE_RELEASE = (
                GAME_PACKAGE_VERSION.rsplit('-', 1)
            )
        else:
            GAME_PACKAGE_RELEASE = ''
    else:
        cl = Changelog(fd, strict=False, max_blocks=1)
        GAME_PACKAGE_VERSION = cl.upstream_version or ''
        GAME_PACKAGE_RELEASE = cl.debian_revision or ''

details = {}
if os.path.isfile('/etc/os-release'):
    with open('/etc/os-release', encoding='utf-8') as release:
        for line in release:
            if '=' not in line:
                continue
            key, value = line.strip().split('=', 1)
            details[key] = value.strip('"')

if os.path.isfile('/etc/debian_version'):
    FORMAT = 'deb'
    DISTRO = 'generic'

# mageia also has a /etc/redhat-release
elif os.path.isfile('/etc/mageia-release'):
    FORMAT = 'rpm'
    DISTRO = 'mageia'

elif os.path.isfile('/etc/redhat-release'):
    FORMAT = 'rpm'
    DISTRO = 'fedora'

elif os.path.isfile('/etc/SuSE-release') or details.get('ID_LIKE') == 'suse':
    FORMAT = 'rpm'
    DISTRO = 'suse'

elif os.path.isfile('/etc/arch-release'):
    FORMAT = 'arch'
    DISTRO = 'arch'

else:
    exit('ERROR: Unknown distribution')

if __name__ == '__main__':
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('--distro', default='')
    parser.add_argument('--format', default='')
    parser.add_argument('--version', default='')
    parser.add_argument('--release', default='')
    args = parser.parse_args()

    if args.release:
        GAME_PACKAGE_RELEASE = args.release

    if args.version:
        GAME_PACKAGE_VERSION = args.version

    if args.format:
        FORMAT = args.format

    if args.distro:
        DISTRO = args.distro

    print('# Generated file, do not edit')
    for const in (
        'DISTRO',
        'FORMAT',
        'GAME_PACKAGE_VERSION',
        'GAME_PACKAGE_RELEASE',
    ):
        print('%s = %r' % (const, eval(const)))