src/Pure/Thy/export.scala
changeset 69811 18f61ce86425
parent 69789 2c3e5e58d93f
child 69854 cc0b3e177b49
equal deleted inserted replaced
69810:a23d6ff31f79 69811:18f61ce86425
   262     session_name: String,
   262     session_name: String,
   263     export_dir: Path,
   263     export_dir: Path,
   264     progress: Progress = No_Progress,
   264     progress: Progress = No_Progress,
   265     export_prune: Int = 0,
   265     export_prune: Int = 0,
   266     export_list: Boolean = false,
   266     export_list: Boolean = false,
   267     export_patterns: List[String] = Nil,
   267     export_patterns: List[String] = Nil)
   268     export_prefix: String = "")
       
   269   {
   268   {
   270     using(store.open_database(session_name))(db =>
   269     using(store.open_database(session_name))(db =>
   271     {
   270     {
   272       db.transaction {
   271       db.transaction {
   273         val export_names = read_theory_exports(db, session_name)
   272         val export_names = read_theory_exports(db, session_name)
   296               if (elems.length < export_prune + 1) {
   295               if (elems.length < export_prune + 1) {
   297                 error("Cannot prune path by " + export_prune + " element(s): " + Path.make(elems))
   296                 error("Cannot prune path by " + export_prune + " element(s): " + Path.make(elems))
   298               }
   297               }
   299               else export_dir + Path.make(elems.drop(export_prune))
   298               else export_dir + Path.make(elems.drop(export_prune))
   300 
   299 
   301             progress.echo(export_prefix + "export " + path)
   300             progress.echo("export " + path + (if (entry.executable) " (executable)" else ""))
   302             Isabelle_System.mkdirs(path.dir)
   301             Isabelle_System.mkdirs(path.dir)
   303             Bytes.write(path, entry.uncompressed(cache = store.xz_cache))
   302             Bytes.write(path, entry.uncompressed(cache = store.xz_cache))
   304             File.set_executable(path, entry.executable)
   303             File.set_executable(path, entry.executable)
   305           }
   304           }
   306         }
   305         }