mirror of
https://github.com/bolucat/Archive.git
synced 2025-10-19 06:24:54 +08:00
Update On Mon Oct 28 19:35:25 CET 2024
This commit is contained in:
@@ -1,33 +1,55 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
def check_string_output(command):
|
||||
return subprocess.check_output(command, stderr=subprocess.STDOUT).decode().strip()
|
||||
|
||||
# https://wiki.debian.org/DebianReleases
|
||||
# https://wiki.ubuntu.com/Releases
|
||||
codenames = {
|
||||
"trusty" : "ubuntu-14.04-trusty",
|
||||
"xenial" : "ubuntu-16.04-xenial",
|
||||
"bionic" : "ubuntu-18.04-bionic",
|
||||
"focal" : "ubuntu-20.04-focal",
|
||||
"impish" : "ubuntu-21.10-impish",
|
||||
"jammy" : "ubuntu-22.04-jammy",
|
||||
"lunar" : "ubuntu-23.04-lunar",
|
||||
"mantic" : "ubuntu-23.10-mantic",
|
||||
"noble" : "ubuntu-24.04-noble",
|
||||
"oracular" : "ubuntu-24.10-oracular",
|
||||
"stretch" : "debian-9-stretch",
|
||||
"buster" : "debian-10-buster",
|
||||
"bullseye" : "debian-11-bullseye",
|
||||
"bookworm" : "debian-12-bookworm",
|
||||
"trixie" : "debian-13-trixie",
|
||||
"testing" : "debian-testing",
|
||||
"sid" : "debian-sid",
|
||||
}
|
||||
_codenames_db = {}
|
||||
|
||||
def open_ubuntu_csv_file(csvpath):
|
||||
import csv
|
||||
with open(csvpath, newline='') as csvfile:
|
||||
reader = csv.DictReader(csvfile, delimiter=',')
|
||||
for row in reader:
|
||||
version = row['version'].replace(' LTS', '')
|
||||
codename = row['series']
|
||||
key = codename
|
||||
value = 'ubuntu-' + version + '-' + codename
|
||||
_codenames_db[key] = value
|
||||
|
||||
def open_debian_csv_file(csvpath):
|
||||
import csv
|
||||
with open(csvpath, newline='') as csvfile:
|
||||
reader = csv.DictReader(csvfile, delimiter=',')
|
||||
for row in reader:
|
||||
version = row['version']
|
||||
codename = row['series']
|
||||
key = codename
|
||||
if version:
|
||||
value = 'debian-' + version + '-' + codename
|
||||
else:
|
||||
value = 'debian-' + codename
|
||||
_codenames_db[key] = value
|
||||
|
||||
|
||||
def init_codenames_from_distro_info_data():
|
||||
try:
|
||||
open_ubuntu_csv_file('/usr/share/distro-info/ubuntu.csv')
|
||||
except IOError:
|
||||
# shipped by distro-info-data 0.60ubuntu0.2
|
||||
open_ubuntu_csv_file('./distro-info/ubuntu.csv')
|
||||
pass
|
||||
try:
|
||||
open_debian_csv_file('/usr/share/distro-info/debian.csv')
|
||||
except IOError:
|
||||
# shipped by distro-info-data 0.60ubuntu0.2
|
||||
open_debian_csv_file('./distro-info/debian.csv')
|
||||
pass
|
||||
|
||||
def main():
|
||||
os.chdir(os.path.dirname(os.path.abspath(__file__)))
|
||||
import argparse
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('codename', nargs='?', help='Debian Distribution Name')
|
||||
@@ -37,12 +59,17 @@ def main():
|
||||
if not codename:
|
||||
codename = check_string_output(['lsb_release', '-sc']).lower()
|
||||
|
||||
if codename in codenames:
|
||||
print(codenames[codename])
|
||||
init_codenames_from_distro_info_data()
|
||||
|
||||
if codename in _codenames_db:
|
||||
print(_codenames_db[codename])
|
||||
else:
|
||||
id = check_string_output(['lsb_release', '-si']).lower()
|
||||
release = check_string_output(['lsb_release', '-sr'])
|
||||
print("%s-%s-%s" % (id, release, codename))
|
||||
if codename != 'n/a':
|
||||
print("%s-%s-%s" % (id, release, codename))
|
||||
else:
|
||||
print("%s-%s" % (id, release))
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
Reference in New Issue
Block a user