74 lines
1.5 KiB
Python
74 lines
1.5 KiB
Python
"""
|
|
**Using Python Argument Parsing**
|
|
|
|
This example shows how the Python ``argparse`` module can be used with a custom command.
|
|
|
|
Using ``argparse`` is generally recommended as it has many useful utilities and
|
|
generates a ``--help`` message for your command.
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
|
|
import bpy
|
|
|
|
|
|
def argparse_create():
|
|
import argparse
|
|
|
|
parser = argparse.ArgumentParser(
|
|
prog=os.path.basename(sys.argv[0]) + " --command keyconfig_export",
|
|
description="Write key-configuration to a file.",
|
|
)
|
|
|
|
parser.add_argument(
|
|
"-o", "--output",
|
|
dest="output",
|
|
metavar='OUTPUT',
|
|
type=str,
|
|
help="The path to write the keymap to.",
|
|
required=True,
|
|
)
|
|
|
|
parser.add_argument(
|
|
"-a", "--all",
|
|
dest="all",
|
|
action="store_true",
|
|
help="Write all key-maps (not only customized key-maps).",
|
|
required=False,
|
|
)
|
|
|
|
return parser
|
|
|
|
|
|
def keyconfig_export(argv):
|
|
parser = argparse_create()
|
|
args = parser.parse_args(argv)
|
|
|
|
# Ensure the key configuration is loaded in background mode.
|
|
bpy.utils.keyconfig_init()
|
|
|
|
bpy.ops.preferences.keyconfig_export(
|
|
filepath=args.output,
|
|
all=args.all,
|
|
)
|
|
|
|
return 0
|
|
|
|
|
|
cli_commands = []
|
|
|
|
|
|
def register():
|
|
cli_commands.append(bpy.utils.register_cli_command("keyconfig_export", keyconfig_export))
|
|
|
|
|
|
def unregister():
|
|
for cmd in cli_commands:
|
|
bpy.utils.unregister_cli_command(cmd)
|
|
cli_commands.clear()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
register()
|