diff --git a/matlab/TCV_IMAS/tcv_get_deploymentinfo.m b/matlab/TCV_IMAS/tcv_get_deploymentinfo.m index 576b97c706bbd09eee4b2b8dc38e0edc57511db7..f5562e1d9457e4c79a0992fc2b3ffdd98b186913 100644 --- a/matlab/TCV_IMAS/tcv_get_deploymentinfo.m +++ b/matlab/TCV_IMAS/tcv_get_deploymentinfo.m @@ -1,55 +1,60 @@ -function info = tcv_get_deploymentinfo(filepath) +function info = tcv_get_deploymentinfo(function_name) % Reads a deployment info file and extracts relevant details % Author: L. Simons % Date: 07/03/25 % % Args: - % filepath: Path to the text file + % function_name: String, name of function % % Returns: % info: Struct containing extracted information % Initialize output struct info = struct(); - 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; + try + filepath=fullfile(fileparts(which(function_name)),'.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 - - % Close the file - fclose(fid); end diff --git a/matlab/TCV_IMAS/tcv_get_ids_soft_x_rays.m b/matlab/TCV_IMAS/tcv_get_ids_soft_x_rays.m index b9fd4b30ca45c31ba8ad42a6cdc6727d5cc8fdfa..5cdf1cf9f51bda3c284b27696ab033dfcf4a025d 100644 --- a/matlab/TCV_IMAS/tcv_get_ids_soft_x_rays.m +++ b/matlab/TCV_IMAS/tcv_get_ids_soft_x_rays.m @@ -125,7 +125,7 @@ if status ids_soft_x_rays.code.name = 'rc_load_diodes'; ids_soft_x_rays.code.description = ['rc_load_diodes, RADCAM gitlab repo, loads' ... 'the signal from the SXR diodes in arbitrary units.']; - radcam_gitinfo = tcv_get_deploymentinfo(fullfile(fileparts(which(ids_soft_x_rays.code.name)),'.this-deployment.info')); + radcam_gitinfo = tcv_get_deploymentinfo(ids_soft_x_rays.code.name); ids_soft_x_rays.code.commit=library_gitinfo.git_commit; ids_soft_x_rays.code.version=library_gitinfo.git_tag; ids_soft_x_rays.code.repository=library_gitinfo.git_project_url;