Quelle xdrgen
Sprache: unbekannt
#! /usr/bin/env python3
# ex: set filetype=python:
"" "Translate an XDR specification into executable code that
can be compiled for the Linux kernel."" "
__author__ = "Chuck Lever"
__copyright__ = "Copyright (c) 2024 Oracle and/or its affiliates."
__license__ = "GPL-2.0 only"
__version__ = "0.2"
import sys
import argparse
from subcmds import definitions
from subcmds import declarations
from subcmds import lint
from subcmds import source
sys.path.insert(1, "@pythondir@" )
def main() -> int :
"" "Parse command-line options" ""
parser = argparse.ArgumentParser(
formatter_class=argparse.RawDescriptionHelpFormatter,
description="Convert an XDR specification to Linux kernel source code" ,
epilog="" "\
Copyright (c) 2024 Oracle and /or its affiliates.
License GPLv2: <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>
This is free software. You are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law."" ",
)
parser.add_argument(
"--version" ,
help="Display the version of this tool" ,
action="version" ,
version=__version__,
)
subcommands = parser.add_subparsers(title="Subcommands" , required=True )
definitions_parser = subcommands.add_parser(
"definitions" , help="Generate XDR definitions"
)
definitions_parser.add_argument(
"--annotate" ,
action="store_true" ,
default =False ,
help="Add annotation comments" ,
)
definitions_parser.add_argument(
"--language" ,
action="store_true" ,
default ="C" ,
help="Output language" ,
)
definitions_parser.add_argument(
"--peer" ,
choices=["server" , "client" ,],
default ="server" ,
help="Generate header code for client or server side" ,
type=str,
)
definitions_parser.add_argument("filename" , help="File containing an XDR specification" )
definitions_parser.set_defaults(func=definitions.subcmd)
declarations_parser = subcommands.add_parser(
"declarations" , help="Generate function declarations"
)
declarations_parser.add_argument(
"--annotate" ,
action="store_true" ,
default =False ,
help="Add annotation comments" ,
)
declarations_parser.add_argument(
"--language" ,
action="store_true" ,
default ="C" ,
help="Output language" ,
)
declarations_parser.add_argument(
"--peer" ,
choices=["server" , "client" ,],
default ="server" ,
help="Generate code for client or server side" ,
type=str,
)
declarations_parser.add_argument("filename" , help="File containing an XDR specification" )
declarations_parser.set_defaults(func=declarations.subcmd)
linter_parser = subcommands.add_parser("lint" , help="Check an XDR specification" )
linter_parser.add_argument("filename" , help="File containing an XDR specification" )
linter_parser.set_defaults(func=lint.subcmd)
source_parser = subcommands.add_parser(
"source" , help="Generate XDR encoder and decoder source code"
)
source_parser.add_argument(
"--annotate" ,
action="store_true" ,
default =False ,
help="Add annotation comments" ,
)
source_parser.add_argument(
"--language" ,
action="store_true" ,
default ="C" ,
help="Output language" ,
)
source_parser.add_argument(
"--peer" ,
choices=["server" , "client" ,],
default ="server" ,
help="Generate code for client or server side" ,
type=str,
)
source_parser.add_argument("filename" , help="File containing an XDR specification" )
source_parser.set_defaults(func=source.subcmd)
args = parser.parse_args()
return args.func(args)
try :
if __name__ == "__main__" :
sys.exit (main())
except SystemExit:
sys.exit (0)
except (KeyboardInterrupt, BrokenPipeError):
sys.exit (1)
Messung V0.5 in Prozent C=94 H=93 G=93
[Dauer der Verarbeitung: 0.14 Sekunden, vorverarbeitet 2026-04-29]
2026-05-26