src/Pure/Admin/build_history.scala
changeset 64231 dbc8294c75d3
parent 64227 cc2edb86f3cc
child 64232 367d83d6030e
equal deleted inserted replaced
64230:13a97c1d7d22 64231:dbc8294c75d3
   340     options: String = "",
   340     options: String = "",
   341     args: String = ""): List[(String, Bytes)] =
   341     args: String = ""): List[(String, Bytes)] =
   342   {
   342   {
   343     using(session.sftp())(sftp =>
   343     using(session.sftp())(sftp =>
   344       {
   344       {
   345         val isabelle_admin = (isabelle_repos_self + Path.explode("Admin")).implode
   345         val isabelle_admin = sftp.path(isabelle_repos_self + Path.explode("Admin"))
   346 
   346 
   347 
   347 
   348         /* prepare repository clones */
   348         /* prepare repository clones */
   349 
   349 
   350         val ssh = Some(session)
       
   351 
       
   352         val isabelle_hg =
   350         val isabelle_hg =
   353           if (sftp.stat(isabelle_repos_self.implode).nonEmpty)
   351           Mercurial.setup_repository(
   354             Mercurial.repository(isabelle_repos_self, ssh = ssh)
   352             isabelle_repos_source, isabelle_repos_self, ssh = Some(session))
   355           else
       
   356             Mercurial.clone_repository(isabelle_repos_source, isabelle_repos_self, ssh = ssh)
       
   357 
   353 
   358         if (self_update) {
   354         if (self_update) {
   359           isabelle_hg.pull()
   355           isabelle_hg.pull()
   360           isabelle_hg.update(clean = true)
   356           isabelle_hg.update(clean = true)
   361           session.execute(File.bash_string(isabelle_admin + "/build") + " jars_fresh").check
   357           session.execute(File.bash_string(isabelle_admin + "/build") + " jars_fresh").check
   362         }
   358         }
   363 
   359 
   364         if (sftp.stat(isabelle_repos_other.implode).isEmpty)
   360         Mercurial.setup_repository(
   365           Mercurial.clone_repository(isabelle_repos_self.implode, isabelle_repos_other, ssh = ssh)
   361           sftp.path(isabelle_repos_self), isabelle_repos_other, ssh = Some(session))
   366 
   362 
   367 
   363 
   368         /* Admin/build_history */
   364         /* Admin/build_history */
   369 
   365 
   370         val result =
   366         val result =
   371           session.execute(
   367           session.execute(
   372             File.bash_string(isabelle_admin + "/build_history") + " " + options + " " +
   368             File.bash_string(isabelle_admin + "/build_history") + " " + options + " " +
   373               File.bash_path(isabelle_repos_other) + " " + args,
   369               File.bash_string(sftp.path(isabelle_repos_other)) + " " + args,
   374             progress_stderr = progress.echo(_))
   370             progress_stderr = progress.echo(_))
   375 
   371 
   376         result.check.out_lines.map(log => (Path.explode(log).base.implode, sftp.read_bytes(log)))
   372         result.check.out_lines.map(log => (Path.explode(log).base.implode, sftp.read_bytes(log)))
   377       })
   373       })
   378   }
   374   }