From 1d53b04e79e4734e501df979dbf856c301d45043 Mon Sep 17 00:00:00 2001
From: Roberto Susino <roberto.susino@inaf.it>
Date: Tue, 18 Jan 2022 14:34:48 +0100
Subject: [PATCH] Add management of predictive SPICE metakernel

---
 load_spice_kernels.pro | 25 +++++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/load_spice_kernels.pro b/load_spice_kernels.pro
index aded929..f2f225d 100644
--- a/load_spice_kernels.pro
+++ b/load_spice_kernels.pro
@@ -1,11 +1,11 @@
 pro load_spice_kernels, path, unload = unload, kernel_list = kernel_list, kernel_version = kernel_version
 	if keyword_set(unload) then cspice_kclear else begin
-		metakernel = path + '/mk/solo_ANC_soc-flown-mk.tm'
-		openr, in, metakernel, /get_lun
 		kernel_list = list()
-		while ~ eof(in) do begin
+		
+		openr, unit, path + '/mk/solo_ANC_soc-pred-mk.tm', /get
+		while ~ eof(unit) do begin
 			line = ''
-			readf, in, line
+			readf, unit, line
 			if line.contains('$KERNELS', /fold) then begin
 				line = line.replace('$KERNELS', path)
 				line = line.replace("'", '')
@@ -17,6 +17,23 @@ pro load_spice_kernels, path, unload = unload, kernel_list = kernel_list, kernel
 			endif
 		endwhile
 		close, /all
+
+		openr, unit, path + '/mk/solo_ANC_soc-flown-mk.tm', /get
+		while ~ eof(unit) do begin
+			line = ''
+			readf, unit, line
+			if line.contains('$KERNELS', /fold) then begin
+				line = line.replace('$KERNELS', path)
+				line = line.replace("'", '')
+				kernel_list.add, line.trim()
+			endif
+			if line.contains('SKD_VERSION', /fold) then begin
+				fields = stregex(line, ".*'([a-z_0-9]*)'", /extract, /sub)
+				kernel_version = fields[1]
+			endif
+		endwhile
+		close, /all
+
 		foreach item, kernel_list do cspice_furnsh, item
 	endelse
 end
-- 
GitLab