Source code for buildtest.cli.edit

import os
import subprocess
import sys

from buildtest.buildsystem.parser import BuildspecParser
from buildtest.executors.setup import BuildExecutor
from buildtest.utils.file import is_dir, resolve_path


[docs]def edit_buildspec(buildspec, configuration): """Open buildspec in editor and validate buildspec with parser. This method is invoked by command ``buildtest edit``. Args: buildspec (str): Path to buildspec file to edit configuration (buildtest.config.SiteConfiguration): An instance of SiteConfiguration class """ buildspec = resolve_path(buildspec, exist=False) if is_dir(buildspec): sys.exit(f"buildspec: {buildspec} is a directory, please specify a file type") EDITOR = os.environ.get("EDITOR", "vim") subprocess.call([EDITOR, buildspec]) print(f"Writing file: {buildspec}") be = BuildExecutor(configuration) BuildspecParser(buildspec, be) print(f"{buildspec} is valid")