Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quellcode-Bibliothek

© Kompilation durch diese Firma

[Weder Korrektheit noch Funktionsfähigkeit der Software werden zugesichert.]

Datei: record_syntax.v   Sprache: Scala

Untersuchung Isabelle©

/*  Title:      Pure/Admin/build_cygwin.scala
    Author:     Makarius

Produce pre-canned Cygwin distribution for Isabelle.
*/


package isabelle


object Build_Cygwin
{
  val default_mirror: String = "https://isabelle.sketis.net/cygwin_2021"

  val packages: List[String] =
    List("curl""libgmp-devel""nano""perl""perl-libwww-perl""rlwrap""unzip")

  def build_cygwin(progress: Progress,
    mirror: String = default_mirror,
    more_packages: List[String] = Nil)
  {
    require(Platform.is_windows, "Windows platform expected")

    Isabelle_System.with_tmp_dir("cygwin")(tmp_dir =>
      {
        val cygwin = tmp_dir + Path.explode("cygwin")
        val cygwin_etc = cygwin + Path.explode("etc")
        val cygwin_isabelle = Isabelle_System.make_directory(cygwin + Path.explode("isabelle"))

        val cygwin_exe_name = mirror + "/setup-x86_64.exe"
        val cygwin_exe = cygwin_isabelle + Path.explode("cygwin.exe")
        Bytes.write(cygwin_exe,
          try { Bytes.read(Url(cygwin_exe_name)) }
          catch { case ERROR(_) => error("Failed to download " + quote(cygwin_exe_name)) })

        File.write(cygwin_isabelle + Path.explode("cygwin_mirror"), mirror)

        File.set_executable(cygwin_exe, true)
        Isabelle_System.bash(File.bash_path(cygwin_exe) + " -h /dev/null").check

        val res =
          progress.bash(
            File.bash_path(cygwin_exe) + " --site " + Bash.string(mirror) + " --no-verify" +
              " --local-package-dir 'C:\\temp'" +
              " --root " + File.bash_platform_path(cygwin) +
              " --packages " + quote((packages ::: more_packages).mkString(",")) +
              " --no-shortcuts --no-startmenu --no-desktop --quiet-mode",
            echo = true)
        if (!res.ok || !cygwin_etc.is_dir) error("Failed")

        for (name <- List("hosts""protocols""services""networks""passwd""group"))
          (cygwin_etc + Path.explode(name)).file.delete

        (cygwin + Path.explode("Cygwin.bat")).file.delete

        val archive = "cygwin-" + Date.Format("uuuuMMdd")(Date.now()) + ".tar.gz"
        Isabelle_System.gnutar("-czf " + Bash.string(archive) + " cygwin", dir = tmp_dir).check
      })
  }


  /* Isabelle tool wrapper */

  val isabelle_tool =
    Isabelle_Tool("build_cygwin""produce pre-canned Cygwin distribution for Isabelle",
      Scala_Project.here, args =>
    {
      var mirror = default_mirror
      var more_packages: List[String] = Nil

      val getopts =
        Getopts("""
Usage: isabelle build_cygwin [OPTIONS]

  Options are:
    -R MIRROR    Cygwin mirror site (default """ + quote(default_mirror) + """)
    -p NAME      additional Cygwin package

  Produce pre-canned Cygwin distribution for Isabelle: this requires
  Windows administrator mode.
""",
          "R:" -> (arg => mirror = arg),
          "p:" -> (arg => more_packages ::= arg))

      val more_args = getopts(args)
      if (more_args.nonEmpty) getopts.usage()

      build_cygwin(new Console_Progress(), mirror = mirror, more_packages = more_packages)
    })
}

¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.31Angebot  Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können  ¤





Druckansicht
unsichere Verbindung
Druckansicht
Hier finden Sie eine Liste der Produkte des Unternehmens

Mittel




Lebenszyklus

Die hierunter aufgelisteten Ziele sind für diese Firma wichtig


Ziele

Entwicklung einer Software für die statische Quellcodeanalyse


Bot Zugriff



                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik