src/Pure/Tools/phabricator.scala
changeset 71097 d3ededaa77b3
parent 71079 e06852132c1d
child 71098 da378866f580
equal deleted inserted replaced
71094:a197532693a5 71097:d3ededaa77b3
    96     read_config().find(config => config.name == name) getOrElse
    96     read_config().find(config => config.name == name) getOrElse
    97       error("Bad Isabelle/Phabricator installation " + quote(name))
    97       error("Bad Isabelle/Phabricator installation " + quote(name))
    98 
    98 
    99 
    99 
   100 
   100 
       
   101   /** command-line tools **/
       
   102 
       
   103   /* Isabelle tool wrapper */
       
   104 
       
   105   val isabelle_tool1 =
       
   106     Isabelle_Tool("phabricator", "invoke command-line tool within Phabricator home directory", args =>
       
   107     {
       
   108       var name = default_name
       
   109 
       
   110       val getopts =
       
   111         Getopts("""
       
   112 Usage: isabelle phabricator [OPTIONS] COMMAND [ARGS...]
       
   113 
       
   114   Options are:
       
   115     -n NAME      Phabricator installation name (default: """ + quote(default_name) + """)
       
   116 
       
   117   Invoke a command-line tool within the home directory of the named Phabricator
       
   118   installation.
       
   119 """,
       
   120           "n:" -> (arg => name = arg))
       
   121 
       
   122       val more_args = getopts(args)
       
   123       if (more_args.isEmpty) getopts.usage()
       
   124 
       
   125       val progress = new Console_Progress
       
   126 
       
   127       val config = get_config(name)
       
   128 
       
   129       if (!progress.bash(Bash.strings(more_args), cwd = config.home.file, echo = true).ok) {
       
   130         error("Command failed")
       
   131       }
       
   132     })
       
   133 
       
   134 
       
   135 
   101   /** setup **/
   136   /** setup **/
   102 
   137 
   103   def user_setup(name: String, description: String, ssh_setup: Boolean = false)
   138   def user_setup(name: String, description: String, ssh_setup: Boolean = false)
   104   {
   139   {
   105     if (!Linux.user_exists(name)) {
   140     if (!Linux.user_exists(name)) {
   325   }
   360   }
   326 
   361 
   327 
   362 
   328   /* Isabelle tool wrapper */
   363   /* Isabelle tool wrapper */
   329 
   364 
   330   val isabelle_tool1 =
   365   val isabelle_tool2 =
   331     Isabelle_Tool("phabricator_setup", "setup Phabricator server on Ubuntu Linux", args =>
   366     Isabelle_Tool("phabricator_setup", "setup Phabricator server on Ubuntu Linux", args =>
   332     {
   367     {
   333       var repo = ""
   368       var repo = ""
   334       var package_update = false
   369       var package_update = false
   335       var name = default_name
   370       var name = default_name
   434   }
   469   }
   435 
   470 
   436 
   471 
   437   /* Isabelle tool wrapper */
   472   /* Isabelle tool wrapper */
   438 
   473 
   439   val isabelle_tool2 =
   474   val isabelle_tool3 =
   440     Isabelle_Tool("phabricator_setup_mail",
   475     Isabelle_Tool("phabricator_setup_mail",
   441       "setup mail configuration for existing Phabricator server", args =>
   476       "setup mail configuration for existing Phabricator server", args =>
   442     {
   477     {
   443       var test_user = ""
   478       var test_user = ""
   444       var name = default_name
   479       var name = default_name