Skip to content
Snippets Groups Projects
Commit ff5568d0 authored by Luke Simons's avatar Luke Simons
Browse files

Changed tcv_get_deploymentinfo to take function name

parent 7bed38d6
Branches
Tags
1 merge request!174Add tcv get ids soft x rays to tcv imas functions
Pipeline #251770 failed
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
......@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment