403Webshell
Server IP : 15.235.198.142  /  Your IP : 216.73.216.213
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 8.3.6
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/lib/grub/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/grub/grub-sort-version
#!/usr/bin/python3
#
"""Script to sort kernel versions."""
import apt_pkg
import argparse
import re
import sys
import os
import typing


def order_index(order: list[re.Pattern[str]], abi: str) -> int:
    """Return the index of abi in order"""
    for i, entry in zip(range(len(order)), order):
        if entry.match(abi):
            return i
    return len(order)


class KernelABI:
    """Orderable kernel ABI string."""

    def __init__(self, abi: str, order: list[re.Pattern[str]]):
        self.abi = abi
        self._index = order_index(order, self.abi)

    def __lt__(self, other: "KernelABI") -> bool:
        if self._index != other._index:
            # Ordering is reversed, what should be considered highest comes first.
            return self._index > other._index
        return apt_pkg.version_compare(f"{self.abi}-0", f"{other.abi}-0") < 0


def main() -> None:
    """Entry point."""
    apt_pkg.init()

    parser = argparse.ArgumentParser(
        prog="grub-sort-version", description="sort kernel ABIs"
    )
    parser.add_argument("-r", "--reverse", action="store_true")
    args = parser.parse_args()

    order = []
    for flavour in os.environ.get("GRUB_FLAVOUR_ORDER", "").split():
        order.append(re.compile(f"[\\s\\S]*-{flavour}(\\s*\\d*)$"))

    versions = [KernelABI(line.rstrip(), order) for line in sys.stdin]
    versions.sort(reverse=args.reverse)

    for v in versions:
        print(v.abi)


if __name__ == "__main__":
    main()

Youez - 2016 - github.com/yon3zu
LinuXploit