mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-03-27 01:12:18 +08:00
Decouple filepaths from rcS/MTD
This commit is contained in:
committed by
Daniel Agar
parent
79e0e00d8c
commit
46e43ec725
61
Tools/filepaths/generate_config.py
Executable file
61
Tools/filepaths/generate_config.py
Executable file
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env python3
|
||||
""" Script to generate Serial rc.filepaths for the ROMFS startup script """
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import sys
|
||||
|
||||
try:
|
||||
from jinja2 import Environment, FileSystemLoader
|
||||
except ImportError as e:
|
||||
print("Failed to import jinja2: " + str(e))
|
||||
print("")
|
||||
print("You may need to install it using:")
|
||||
print(" pip3 install --user jinja2")
|
||||
print("")
|
||||
sys.exit(1)
|
||||
|
||||
try:
|
||||
import yaml
|
||||
except ImportError as e:
|
||||
print("Failed to import yaml: " + str(e))
|
||||
print("")
|
||||
print("You may need to install it using:")
|
||||
print(" pip3 install --user pyyaml")
|
||||
print("")
|
||||
sys.exit(1)
|
||||
|
||||
parser = argparse.ArgumentParser(description='Generate PX4 ROMFS filepaths')
|
||||
|
||||
parser.add_argument('--config-files', type=str, nargs='*', default=[],
|
||||
help='YAML module config file(s)')
|
||||
parser.add_argument('--constrained-flash', action='store_true',
|
||||
help='Reduce verbosity in ROMFS scripts to reduce flash size')
|
||||
parser.add_argument('--rc-dir', type=str, action='store',
|
||||
help='ROMFS output directory', default=None)
|
||||
parser.add_argument('--params-file', type=str, action='store',
|
||||
help='Parameter output file', default=None)
|
||||
parser.add_argument('-v', '--verbose', dest='verbose', action='store_true',
|
||||
help='Verbose Output')
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
verbose = args.verbose
|
||||
constrained_flash = args.constrained_flash
|
||||
rc_filepaths_output_dir = args.rc_dir
|
||||
rc_filepaths_template = 'rc.filepaths.jinja'
|
||||
|
||||
|
||||
jinja_env = Environment(loader=FileSystemLoader(
|
||||
os.path.dirname(os.path.realpath(__file__))))
|
||||
|
||||
# generate the ROMFS script using a jinja template
|
||||
if rc_filepaths_output_dir is not None:
|
||||
rc_filepath_output_file = os.path.join(rc_filepaths_output_dir, "rc.filepaths")
|
||||
|
||||
if verbose: print("Generating {:}".format(rc_filepath_output_file))
|
||||
template = jinja_env.get_template(rc_filepaths_template)
|
||||
with open(rc_filepath_output_file, 'w') as fid:
|
||||
fid.write(template.render(constrained_flash=constrained_flash, params_file=args.params_file))
|
||||
else:
|
||||
raise Exception("--rc-dir needs to be specified")
|
||||
6
Tools/filepaths/rc.filepaths.jinja
Normal file
6
Tools/filepaths/rc.filepaths.jinja
Normal file
@@ -0,0 +1,6 @@
|
||||
{# jinja template to generate the serial autostart script. #}
|
||||
|
||||
# serial autostart script generated with generate_serial_config.py
|
||||
|
||||
|
||||
set PARAM_FILE {{ params_file }}
|
||||
Reference in New Issue
Block a user