diff --git a/python/lvmdrp/__init__.py b/python/lvmdrp/__init__.py index d34f4553..08603f0a 100644 --- a/python/lvmdrp/__init__.py +++ b/python/lvmdrp/__init__.py @@ -6,6 +6,7 @@ from sdsstools import get_config, get_logger, get_package_version from tree import Tree from sdss_access.path import Path +import subprocess NAME = 'lvmdrp' @@ -35,3 +36,14 @@ def setup_paths(release: str = 'sdsswork', replant: bool = False): __version__ = os.getenv("LVMDRP_VERSION") or get_package_version(path=__file__, package_name=NAME) + + +# NOTE: taken from https://stackoverflow.com/questions/14989858/get-the-current-git-hash-in-a-python-script +def get_git_revision_hash() -> str: + return subprocess.check_output(['git', 'rev-parse', 'HEAD']).decode('ascii').strip() + +def get_git_revision_short_hash() -> str: + return subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD']).decode('ascii').strip() + + +DRP_COMMIT = get_git_revision_short_hash() \ No newline at end of file diff --git a/python/lvmdrp/functions/imageMethod.py b/python/lvmdrp/functions/imageMethod.py index 18b339be..e0e5d4c1 100644 --- a/python/lvmdrp/functions/imageMethod.py +++ b/python/lvmdrp/functions/imageMethod.py @@ -25,7 +25,7 @@ from typing import List, Tuple -from lvmdrp import log, __version__ as DRPVER +from lvmdrp import log, DRP_COMMIT, __version__ as DRPVER from lvmdrp.core.constants import CONFIG_PATH, SPEC_CHANNELS, ARC_LAMPS, LVM_REFERENCE_COLUMN, LVM_NBLOCKS, FIDUCIAL_PLATESCALE from lvmdrp.utils.decorators import skip_on_missing_input_path, drop_missing_input_paths from lvmdrp.utils.bitmask import QualityFlag @@ -3365,6 +3365,8 @@ def preproc_raw_frame( # set drp tag version proc_img.setHdrValue("DRPVER", DRPVER, comment='data reduction pipeline software tag') + # set drp commit SHA + proc_img.setHdrValue("COMMIT", DRP_COMMIT, comment="data reduction pipeline commit HASH") # write out FITS file log.info(f"writing preprocessed image to {os.path.basename(out_image)}")