more operations;
authorwenzelm
Wed, 23 Mar 2022 16:53:00 +0100
changeset 75315 5c0ea94757f2
parent 75314 f31fbe4e1909
child 75316 d7f41034a239
more operations;
src/Tools/VSCode/src/vscode_main.scala
--- a/src/Tools/VSCode/src/vscode_main.scala	Wed Mar 23 16:41:32 2022 +0100
+++ b/src/Tools/VSCode/src/vscode_main.scala	Wed Mar 23 16:53:00 2022 +0100
@@ -9,6 +9,8 @@
 
 import isabelle._
 
+import java.util.zip.ZipFile
+
 
 object VSCode_Main
 {
@@ -92,6 +94,20 @@
       terminate_lines(a :: bs)
     }
 
+    def check_vsix(path: Path): Boolean =
+    {
+      path.is_file && {
+        using(new ZipFile(path.file))(zip_file =>
+        {
+          val entry = zip_file.getEntry("extension/MANIFEST.shasum")
+          entry != null && {
+            val stream = zip_file.getInputStream(entry)
+            stream != null && File.read_stream(stream) == extension_manifest().shasum
+          }
+        })
+      }
+    }
+
     def check_dir(dir: Path): Boolean =
     {
       val path = dir + MANIFEST.shasum