def _detect_stage_version(stage_name): """ Stage version is defined as: - `v1` for bash script stage definitions - `v2+` for python stage definitions Starts by checking for latest version. Returns: (version, filepath) """ stage_python_filepath = shared.get_stage_file(stage_name) if os.path.exists(stage_python_filepath): stage = shared.get_stage_object(stage_name) stage_version = getattr(stage, "spec_version", STAGE_VERSION_2_0) if stage_version not in SUPPORTED_STAGE_VERSIONS: raise ValueError("Unsupported spec version: '%s'. " "Supported versions are %s" % (stage_version, SUPPORTED_STAGE_VERSIONS)) return stage_version, stage_python_filepath stage_bash_filepath = os.path.join(constants.PROJECT_DIR, "scripts/variables/stages", "%s.sh" % stage_name) if os.path.exists(stage_bash_filepath): return STAGE_VERSION_1_0, stage_bash_filepath raise ValueError("No stage file found for name: '%s'" % stage_name)
def fetch_stage_or_default(stage_name=None, debug=False): if not stage_name: stage_name = shared.get_default_stage_name(debug=debug) if not shared.check_stage_file(stage_name): click.echo(click.style("Stage file '%s' not found." % stage_name, fg='red', bold=True)) return None stage = shared.get_stage_object(stage_name) return stage_name, stage