Version 1
[yaffs-website] / vendor / drush / drush / lib / Drush / CommandFiles / core / browseCommands.php
diff --git a/vendor/drush/drush/lib/Drush/CommandFiles/core/browseCommands.php b/vendor/drush/drush/lib/Drush/CommandFiles/core/browseCommands.php
new file mode 100644 (file)
index 0000000..02e9051
--- /dev/null
@@ -0,0 +1,60 @@
+<?php
+
+namespace Drush\CommandFiles\Core;
+
+class BrowseCommands {
+
+  /**
+   * Display a link to a given path or open link in a browser.
+   *
+   * @todo Document new @handle-remote-commands and @bootstrap annotations.
+   *
+   * @param string|null $path Path to open. If omitted, the site front page will be opened.
+   * @option string $browser Specify a particular browser (defaults to operating system default). Use --no-browser to suppress opening a browser.
+   * @option integer $redirect-port The port that the web server is redirected to (e.g. when running within a Vagrant environment).
+   * @usage drush browse
+   *   Open default web browser (if configured or detected) to the site front page.
+   * @usage drush browse node/1
+   *   Open web browser to the path node/1.
+   * @usage drush @example.prod
+   *   Open a browser to the web site specified in a site alias.
+   * @usage drush browse --browser=firefox admin
+   *   Open Firefox web browser to the path 'admin'.
+   * @bootstrap DRUSH_BOOTSTRAP_NONE
+   * @handle-remote-commands true
+   * @complete \Drush\CommandFiles\Core\BrowseCommands::complete
+   */
+  public function browse($path = '', $options = ['browser' => NULL, 'redirect-port' => NULL]) {
+    // Redispatch if called against a remote-host so a browser is started on the
+    // the *local* machine.
+    $alias = drush_get_context('DRUSH_TARGET_SITE_ALIAS');
+    if (drush_sitealias_is_remote_site($alias)) {
+      $site_record = drush_sitealias_get_record($alias);
+      $return = drush_invoke_process($site_record, 'browse', array($path), drush_redispatch_get_options(), array('integrate' => TRUE));
+      if ($return['error_status']) {
+        return drush_set_error('Unable to execute browse command on remote alias.');
+      }
+      else {
+        $link = $return['object'];
+      }
+    }
+    else {
+      if (!drush_bootstrap(DRUSH_BOOTSTRAP_DRUPAL_FULL)) {
+        // Fail gracefully if unable to bootstrap Drupal. drush_bootstrap() has
+        // already logged an error.
+        return FALSE;
+      }
+      $link = drush_url($path, array('absolute' => TRUE));
+    }
+
+    drush_start_browser($link);
+    return $link;
+  }
+
+  /*
+   * An argument completion provider
+   */
+  static function complete() {
+    return ['values' => ['admin', 'admin/content', 'admin/reports', 'admin/structure', 'admin/people', 'admin/modules', 'admin/config']];
+  }
+}
\ No newline at end of file