function info = tcv_get_deploymentinfo(filepath) % Reads a deployment info file and extracts relevant details % Author: L. Simons % Date: 07/03/25 % % Args: % filepath: Path to the text file % % Returns: % info: Struct containing extracted information % Initialize output struct info = struct(); try filepath=fullfile(fileparts(which(filepath)),'.this-deployment.info'); info.repository=fileparts(filepath); % Check if file exists if exist(filepath, 'file') ~= 2 error('File does not exist: %s', filepath); end % Open file for reading fid = fopen(filepath, 'r'); if fid == -1 error('Could not open file: %s', filepath); end % Read file line by line while ~feof(fid) line = fgetl(fid); if ischar(line) tokens = regexp(line, '^(\w+):\s(.+)$', 'tokens'); if ~isempty(tokens) key = tokens{1}{1}; value = strtrim(tokens{1}{2}); % Store relevant fields in the struct switch key case 'DEPLOYMENT_DATE' info.deployment_date = value; case 'GIT_TAG' info.git_tag = value; case 'GIT_COMMIT' info.git_commit = value; case 'GIT_TAG_DATE' info.git_tag_date = value; case 'GITLAB_PROJECT_URL' info.gitlab_project_url = value; end end end end % Close the file fclose(fid); catch warning('Failed to read .deployment at filepath: %s',filepath); end end