Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
125 changes: 73 additions & 52 deletions panda-helper
Original file line number Diff line number Diff line change
@@ -1,72 +1,93 @@
#!/usr/bin/python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import sys
import argparse
import sys
from panda import Panda


def cmd_current(p: Panda, args):
print(p.get_grub_state())


def cmd_types(p: Panda, args):
types = p.get_driver_types()
print(",".join(types))


def cmd_update(p: Panda, args):
result = p.update_grub(args.mode)
print(result)

import panda

def main(args):
p = panda.Panda()
def cmd_check(p: Panda, args):
packages = p.get_needed_packages()
print(",".join(packages))

if args.cur is not None:
status = p.get_grub_state()
print status

if args.types is not None:
types = p.get_driver_types()
print ",".join(types)
def build_parser():
parser = argparse.ArgumentParser(
prog="panda",
description="Pardus Alternative Driver Administration (Modern CLI)",
)

if args.up is not None:
status = p.update_grub_entries(args.up[0])
print status
parser.add_argument(
"-v", "--version",
action="version",
version="panda 1.0.0"
)

if args.check is not None:
packages = p.get_needed_driver_packages(installable=True)
print ",".join(packages)
subparsers = parser.add_subparsers(dest="command", required=True)

# ---- current ----
p_cur = subparsers.add_parser(
"current",
help="Show currently active driver"
)
p_cur.set_defaults(func=cmd_current)

# ---- types ----
p_types = subparsers.add_parser(
"types",
help="List available driver modes"
)
p_types.set_defaults(func=cmd_types)

def argument():
'''Command line parser'''
parser = argparse.ArgumentParser(description='Pardus Alternative Driver Administration',
prog='panda',
usage='%(prog)s [options]')
# ---- update ----
p_update = subparsers.add_parser(
"switch",
help="Switch driver mode"
)
p_update.add_argument(
"mode",
choices=["vendor", "os", "generic"],
help="Driver mode to switch to"
)
p_update.set_defaults(func=cmd_update)

parser.add_argument('-v', '--version',
action='version',
version='%(prog)s 0.0.1')
# ---- check ----
p_check = subparsers.add_parser(
"check",
help="List required driver packages"
)
p_check.set_defaults(func=cmd_check)

subparsers = parser.add_subparsers(help='Commands')
parser_cur = subparsers.add_parser('cur', help='Show currently used driver')
parser_cur.add_argument('cur',
nargs='*',
help="Show currently used driver")
return parser

parser_update = subparsers.add_parser('types', help='List available driver types')
parser_update.add_argument('types',
nargs='*',
help="List available driver types")

parser_update = subparsers.add_parser('up', help='Update grub.conf')
parser_update.add_argument('up',
nargs=1,
help="Update grub.conf")
def main():
parser = build_parser()
args = parser.parse_args()

parser_update = subparsers.add_parser('check', help='Check for installable packages')
parser_update.add_argument('check',
nargs='*',
help="Check for installable packages")
# We have to set them all to false, otherwise optional arguments are not
# passed to the args() namespace
parser.set_defaults(cur=None,
check=None,
types=None,
up=None)
panda = Panda()

return parser.parse_args()
try:
args.func(panda, args)
return 0
except Exception as e:
print(f"Error: {e}", file=sys.stderr)
return 1


if __name__ == '__main__':
args = argument()
sys.exit(main(args))
if __name__ == "__main__":
sys.exit(main())
Loading