Drush: commands/core/drupal/site_install_6.inc Source File

  1. 7.x doxygen/html/site__install__6_8inc_source.html
  2. master doxygen/html/site__install__6_8inc_source.html
site_install_6.inc
1 <?php
2 
4 
5 /**
6  * Install Drupal 6.x
7  */
8 function drush_core_site_install_version($profile, array $additional_form_options = array()) {
9  drush_log(dt('Starting Drupal installation. This takes a few seconds ...'), LogLevel::OK);
10  if (!isset($profile)) {
11  $profile = 'default';
12  }
13  $drupal_root = drush_get_context('DRUSH_DRUPAL_ROOT');
14 
15  // We need to disable reporting of E_NOTICE if we want to read the command's output
16  // on Windows, because of how Windows is handling output order when using 2>&1
17  // redirect added to the command in drush_shell_exec(). We will actually take out
18  // all but fatal errors. See http://drupal.org/node/985716 for more information.
19  $phpcode = 'error_reporting(E_ERROR);' . _drush_site_install6_cookies($profile). ' include("'. $drupal_root .'/install.php");';
20  drush_shell_exec('php -r %s', $phpcode);
21  $cli_output = drush_shell_exec_output();
22  $cli_cookie = end($cli_output);
23 
24  // We need to bootstrap the database to be able to check the progress of the
25  // install batch process since we're not duplicating the install process using
26  // drush_batch functions, but calling the process directly.
28 
29  $status = _drush_site_install6_stage($profile, $cli_cookie, "start");
30  if ($status === FALSE) {
31  return FALSE;
32  }
33 
34  $status = _drush_site_install6_stage($profile, $cli_cookie, "do_nojs");
35  if ($status === FALSE) {
36  return FALSE;
37  }
38 
39  $status = _drush_site_install6_stage($profile, $cli_cookie, "finished");
40  if ($status === FALSE) {
41  return FALSE;
42  }
43 
44  $account_pass = drush_get_option('account-pass', drush_generate_password());
45  $account_name = drush_get_option('account-name', 'admin');
46  $phpcode = _drush_site_install6_cookies($profile, $cli_cookie);
47  $post = array (
48  "site_name" => drush_get_option('site-name', 'Site-Install'),
49  "site_mail" => drush_get_option('site-mail', 'admin@example.com'),
50  "account" => array (
51  "name" => $account_name,
52  "mail" => drush_get_option('account-mail', 'admin@example.com'),
53  "pass" => array (
54  "pass1" => $account_pass,
55  "pass2" => $account_pass,
56  )
57  ),
58  "date_default_timezone" => "0",
59  "clean_url" => drush_get_option('clean-url', TRUE),
60  "form_id" => "install_configure_form",
61  "update_status_module" => array("1" => "1"),
62  );
63  // Merge in the additional options.
64  foreach ($additional_form_options as $key => $value) {
65  $current = &$post;
66  foreach (explode('.', $key) as $param) {
67  $current = &$current[$param];
68  }
69  $current = $value;
70  }
71  $phpcode .= '
72  $_POST = ' . var_export($post, true) . ';
73  include("'. $drupal_root .'/install.php");';
74  drush_shell_exec('php -r %s', $phpcode);
75 
76  drush_log(dt('Installation complete. User name: @name User password: @pass', array('@name' => $account_name, '@pass' => $account_pass)), LogLevel::OK);
77 }
78 
79 /**
80  * Submit a given op to install.php; if a meta "Refresh" tag
81  * is returned in the result, then submit that op as well.
82  */
83 function _drush_site_install6_stage($profile, $cli_cookie, $initial_op) {
84  $drupal_root = drush_get_context('DRUSH_DRUPAL_ROOT');
85  // Remember the install task at the start of the stage
86  $install_task = _drush_site_install6_install_task();
87  $op = $initial_op;
88  while (!empty($op)) {
89  $phpcode = _drush_site_install6_cookies($profile, $cli_cookie). ' $_GET["op"]="' . $op . '"; include("'. $drupal_root .'/install.php");';
90  drush_shell_exec('php -r %s', $phpcode);
91  $output = implode("\n", drush_shell_exec_output());
92  // Check for a "Refresh" back to the do_nojs op; e.g.:
93  // <meta http-equiv="Refresh" content="0; URL=http://default/install.php?locale=en&profile=wk_profile6&id=1&op=do_nojs">
94  // If this pattern is NOT found, then go on to the "finished" step.
95  $matches = array();
96  $match_result = preg_match('/http-equiv="Refresh".*op=([a-zA-Z0-9_]*)/', $output, $matches);
97  if ($match_result) {
98  $op = $matches[1];
99  }
100  else {
101  $op = '';
102  }
103  }
104  if (($install_task == _drush_site_install6_install_task()) && ($initial_op != "finished")) {
105  return drush_set_error('DRUSH_SITE_INSTALL_FAILED', dt("The site install task '!task' failed.", array('!task' => $install_task)));
106  }
107  return TRUE;
108 }
109 
110 /**
111  * Utility function to grab/set current "cli cookie".
112  */
113 function _drush_site_install6_cookies($profile, $cookie = NULL) {
114  $drupal_base_url = parse_url(drush_get_context('DRUSH_SELECTED_URI'));
115  $output = '$_GET=array("profile"=>"' . $profile . '", "locale"=>"' . drush_get_option('locale', 'en') . '", "id"=>"1"); $_REQUEST=&$_GET;';
116  $output .= 'define("DRUSH_SITE_INSTALL6", TRUE);$_SERVER["SERVER_SOFTWARE"] = NULL;';
117  $output .= '$_SERVER["SCRIPT_NAME"] = "/install.php";';
118  $output .= '$_SERVER["HTTP_HOST"] = "'.$drupal_base_url['host'].'";';
119  $output .= '$_SERVER["REMOTE_ADDR"] = "127.0.0.1";';
120 
121  if ($cookie) {
122  $output .= sprintf('$_COOKIE=unserialize("%s");', str_replace('"', '\"', $cookie));
123  }
124  else {
125  $output .= 'function _cli_cookie_print(){print(serialize(array(session_name()=>session_id())));} register_shutdown_function("_cli_cookie_print");';
126  }
127 
128  return $output;
129 }
130 
131 /**
132  * Utility function to check the install_task. We are
133  * not bootstrapped to a high enough level to use variable_get.
134  */
135 function _drush_site_install6_install_task() {
136  if ($data = db_result(db_query("SELECT value FROM {variable} WHERE name = 'install_task'",1))) {
137  $result = unserialize($data);
138  }
139  return $result;
140 }

File

doxygen/html/site__install__6_8inc_source.html
View source
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Drush: commands/core/drupal/site_install_6.inc Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Drush
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.2 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_afac61274991793aa7e9133a8f4f291e.html">commands</a></li><li class="navelem"><a class="el" href="dir_5762b63965e3a68a35f77c23b4dd4668.html">core</a></li><li class="navelem"><a class="el" href="dir_124c2f0cfa86b0affb712ae9b365039b.html">drupal</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">site_install_6.inc</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;use <a class="code" href="classDrush_1_1Log_1_1LogLevel.html">Drush\Log\LogLevel</a>;</div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Install Drupal 6.x</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="keyword">function</span> drush_core_site_install_version($profile, array $additional_form_options = array()) {</div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;  <a class="code" href="group__logging.html#ga2a8afad8eafb1382e24a5601bc962e71">drush_log</a>(<a class="code" href="group__outputfunctions.html#ga1218abcb1e27dd3bb412113d1e344d96">dt</a>(<span class="stringliteral">&#39;Starting Drupal installation. This takes a few seconds ...&#39;</span>), LogLevel::OK);</div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;  <span class="keywordflow">if</span> (!isset($profile)) {</div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    $profile = <span class="stringliteral">&#39;default&#39;</span>;</div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;  }</div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;  $drupal_root = <a class="code" href="context_8inc.html#ad25559f8d7d753f636fbeac347c29fc5">drush_get_context</a>(<span class="stringliteral">&#39;DRUSH_DRUPAL_ROOT&#39;</span>);</div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;  <span class="comment">// We need to disable reporting of E_NOTICE if we want to read the command&#39;s output</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;  <span class="comment">// on Windows, because of how Windows is handling output order when using 2&gt;&amp;1</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;  <span class="comment">// redirect added to the command in drush_shell_exec(). We will actually take out</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;  <span class="comment">// all but fatal errors.  See http://drupal.org/node/985716 for more information.</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;  $phpcode = <span class="stringliteral">&#39;error_reporting(E_ERROR);&#39;</span> . _drush_site_install6_cookies($profile). <span class="stringliteral">&#39; include(&quot;&#39;</span>. $drupal_root .<span class="stringliteral">&#39;/install.php&quot;);&#39;</span>;</div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;  <a class="code" href="group__commandwrappers.html#gafd358ceac1286dbdd141ff2b8eb7d556">drush_shell_exec</a>(<span class="stringliteral">&#39;php -r %s&#39;</span>, $phpcode);</div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;  $cli_output = <a class="code" href="group__commandwrappers.html#gadba8c59ba260dd39f615bc22ca78e1af">drush_shell_exec_output</a>();</div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;  $cli_cookie = end($cli_output);</div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;  <span class="comment">// We need to bootstrap the database to be able to check the progress of the</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;  <span class="comment">// install batch process since we&#39;re not duplicating the install process using</span></div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;  <span class="comment">// drush_batch functions, but calling the process directly.</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;  drush_bootstrap(DRUSH_BOOTSTRAP_DRUPAL_DATABASE);</div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;  $status = _drush_site_install6_stage($profile, $cli_cookie, <span class="stringliteral">&quot;start&quot;</span>);</div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;  <span class="keywordflow">if</span> ($status === FALSE) {</div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;  }</div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;  $status = _drush_site_install6_stage($profile, $cli_cookie, <span class="stringliteral">&quot;do_nojs&quot;</span>);</div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;  <span class="keywordflow">if</span> ($status === FALSE) {</div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;  }</div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;  $status = _drush_site_install6_stage($profile, $cli_cookie, <span class="stringliteral">&quot;finished&quot;</span>);</div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;  <span class="keywordflow">if</span> ($status === FALSE) {</div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    <span class="keywordflow">return</span> FALSE;</div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;  }</div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;  $account_pass = <a class="code" href="context_8inc.html#afe91fb3e5219ecb2208c3b036b1f0cb8">drush_get_option</a>(<span class="stringliteral">&#39;account-pass&#39;</span>, <a class="code" href="drush_8inc.html#a5684e71a8f8639ee7805a502c6e0cfc4">drush_generate_password</a>());</div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;  $account_name = <a class="code" href="context_8inc.html#afe91fb3e5219ecb2208c3b036b1f0cb8">drush_get_option</a>(<span class="stringliteral">&#39;account-name&#39;</span>, <span class="stringliteral">&#39;admin&#39;</span>);</div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;  $phpcode = _drush_site_install6_cookies($profile, $cli_cookie);</div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;  $post = array (</div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    <span class="stringliteral">&quot;site_name&quot;</span> =&gt; <a class="code" href="context_8inc.html#afe91fb3e5219ecb2208c3b036b1f0cb8">drush_get_option</a>(<span class="stringliteral">&#39;site-name&#39;</span>, <span class="stringliteral">&#39;Site-Install&#39;</span>),</div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;    <span class="stringliteral">&quot;site_mail&quot;</span> =&gt; <a class="code" href="context_8inc.html#afe91fb3e5219ecb2208c3b036b1f0cb8">drush_get_option</a>(<span class="stringliteral">&#39;site-mail&#39;</span>, <span class="stringliteral">&#39;admin@example.com&#39;</span>),</div>
<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    <span class="stringliteral">&quot;account&quot;</span> =&gt; array (</div>
<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;      <span class="stringliteral">&quot;name&quot;</span> =&gt; $account_name,</div>
<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;      <span class="stringliteral">&quot;mail&quot;</span> =&gt; <a class="code" href="context_8inc.html#afe91fb3e5219ecb2208c3b036b1f0cb8">drush_get_option</a>(<span class="stringliteral">&#39;account-mail&#39;</span>, <span class="stringliteral">&#39;admin@example.com&#39;</span>),</div>
<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;      <span class="stringliteral">&quot;pass&quot;</span> =&gt; array (</div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;        <span class="stringliteral">&quot;pass1&quot;</span> =&gt; $account_pass,</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        <span class="stringliteral">&quot;pass2&quot;</span> =&gt; $account_pass,</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;      )</div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    ),</div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="stringliteral">&quot;date_default_timezone&quot;</span> =&gt; <span class="stringliteral">&quot;0&quot;</span>,</div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="stringliteral">&quot;clean_url&quot;</span> =&gt; <a class="code" href="context_8inc.html#afe91fb3e5219ecb2208c3b036b1f0cb8">drush_get_option</a>(<span class="stringliteral">&#39;clean-url&#39;</span>, TRUE),</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="stringliteral">&quot;form_id&quot;</span> =&gt; <span class="stringliteral">&quot;install_configure_form&quot;</span>,</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    <span class="stringliteral">&quot;update_status_module&quot;</span> =&gt; array(<span class="stringliteral">&quot;1&quot;</span> =&gt; <span class="stringliteral">&quot;1&quot;</span>),</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;  );</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;  <span class="comment">// Merge in the additional options.</span></div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;  <span class="keywordflow">foreach</span> ($additional_form_options as $key =&gt; $value) {</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    $current = &amp;$post;</div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="keywordflow">foreach</span> (explode(<span class="charliteral">&#39;.&#39;</span>, $key) as $param) {</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;      $current = &amp;$current[$param];</div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    }</div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    $current = $value;</div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;  }</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;  $phpcode .= <span class="stringliteral">&#39;</span></div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="stringliteral">  $_POST = &#39;</span> . var_export($post, <span class="keyword">true</span>) . <span class="stringliteral">&#39;;</span></div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="stringliteral">  include(&quot;&#39;</span>. $drupal_root .<span class="stringliteral">&#39;/install.php&quot;);&#39;</span>;</div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;  <a class="code" href="group__commandwrappers.html#gafd358ceac1286dbdd141ff2b8eb7d556">drush_shell_exec</a>(<span class="stringliteral">&#39;php -r %s&#39;</span>, $phpcode);</div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;</div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;  <a class="code" href="group__logging.html#ga2a8afad8eafb1382e24a5601bc962e71">drush_log</a>(<a class="code" href="group__outputfunctions.html#ga1218abcb1e27dd3bb412113d1e344d96">dt</a>(<span class="stringliteral">&#39;Installation complete.  User name: @name  User password: @pass&#39;</span>, array(<span class="stringliteral">&#39;@name&#39;</span> =&gt; $account_name, <span class="stringliteral">&#39;@pass&#39;</span> =&gt; $account_pass)), LogLevel::OK);</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;}</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="comment"> * Submit a given op to install.php; if a meta &quot;Refresh&quot; tag</span></div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="comment"> * is returned in the result, then submit that op as well.</span></div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="keyword">function</span> _drush_site_install6_stage($profile, $cli_cookie, $initial_op) {</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;  $drupal_root = <a class="code" href="context_8inc.html#ad25559f8d7d753f636fbeac347c29fc5">drush_get_context</a>(<span class="stringliteral">&#39;DRUSH_DRUPAL_ROOT&#39;</span>);</div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;  <span class="comment">// Remember the install task at the start of the stage</span></div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;  $install_task = _drush_site_install6_install_task();</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;  $op = $initial_op;</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;  <span class="keywordflow">while</span> (!empty($op)) {</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    $phpcode = _drush_site_install6_cookies($profile, $cli_cookie). <span class="stringliteral">&#39; $_GET[&quot;op&quot;]=&quot;&#39;</span> . $op . <span class="stringliteral">&#39;&quot;; include(&quot;&#39;</span>. $drupal_root .<span class="stringliteral">&#39;/install.php&quot;);&#39;</span>;</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    <a class="code" href="group__commandwrappers.html#gafd358ceac1286dbdd141ff2b8eb7d556">drush_shell_exec</a>(<span class="stringliteral">&#39;php -r %s&#39;</span>, $phpcode);</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;    $output = implode(<span class="stringliteral">&quot;\n&quot;</span>, <a class="code" href="group__commandwrappers.html#gadba8c59ba260dd39f615bc22ca78e1af">drush_shell_exec_output</a>());</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    <span class="comment">// Check for a &quot;Refresh&quot; back to the do_nojs op; e.g.:</span></div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    <span class="comment">//   &lt;meta http-equiv=&quot;Refresh&quot; content=&quot;0; URL=http://default/install.php?locale=en&amp;profile=wk_profile6&amp;id=1&amp;op=do_nojs&quot;&gt;</span></div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    <span class="comment">// If this pattern is NOT found, then go on to the &quot;finished&quot; step.</span></div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    $matches = array();</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    $match_result = preg_match(<span class="stringliteral">&#39;/http-equiv=&quot;Refresh&quot;.*op=([a-zA-Z0-9_]*)/&#39;</span>, $output, $matches);</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="keywordflow">if</span> ($match_result) {</div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;      $op = $matches[1];</div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    }</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;      $op = <span class="stringliteral">&#39;&#39;</span>;</div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    }</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;  }</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;  <span class="keywordflow">if</span> (($install_task == _drush_site_install6_install_task()) &amp;&amp; ($initial_op != <span class="stringliteral">&quot;finished&quot;</span>)) {</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="group__errorhandling.html#ga23fe9e1e8c1e5ade39256106044b6da4">drush_set_error</a>(<span class="stringliteral">&#39;DRUSH_SITE_INSTALL_FAILED&#39;</span>, <a class="code" href="group__outputfunctions.html#ga1218abcb1e27dd3bb412113d1e344d96">dt</a>(<span class="stringliteral">&quot;The site install task &#39;!task&#39; failed.&quot;</span>, array(<span class="stringliteral">&#39;!task&#39;</span> =&gt; $install_task)));</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;  }</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;  <span class="keywordflow">return</span> TRUE;</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;}</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="comment"> * Utility function to grab/set current &quot;cli cookie&quot;.</span></div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="keyword">function</span> _drush_site_install6_cookies($profile, $cookie = NULL) {</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;  $drupal_base_url = parse_url(<a class="code" href="context_8inc.html#ad25559f8d7d753f636fbeac347c29fc5">drush_get_context</a>(<span class="stringliteral">&#39;DRUSH_SELECTED_URI&#39;</span>));</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;  $output = <span class="stringliteral">&#39;$_GET=array(&quot;profile&quot;=&gt;&quot;&#39;</span> . $profile . <span class="stringliteral">&#39;&quot;, &quot;locale&quot;=&gt;&quot;&#39;</span> . <a class="code" href="context_8inc.html#afe91fb3e5219ecb2208c3b036b1f0cb8">drush_get_option</a>(<span class="stringliteral">&#39;locale&#39;</span>, <span class="stringliteral">&#39;en&#39;</span>) . <span class="stringliteral">&#39;&quot;, &quot;id&quot;=&gt;&quot;1&quot;); $_REQUEST=&amp;$_GET;&#39;</span>;</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;  $output .= <span class="stringliteral">&#39;define(&quot;DRUSH_SITE_INSTALL6&quot;, TRUE);$_SERVER[&quot;SERVER_SOFTWARE&quot;] = NULL;&#39;</span>;</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;  $output .= <span class="stringliteral">&#39;$_SERVER[&quot;SCRIPT_NAME&quot;] = &quot;/install.php&quot;;&#39;</span>;</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;  $output .= <span class="stringliteral">&#39;$_SERVER[&quot;HTTP_HOST&quot;] = &quot;&#39;</span>.$drupal_base_url[<span class="stringliteral">&#39;host&#39;</span>].<span class="stringliteral">&#39;&quot;;&#39;</span>;</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;  $output .= <span class="stringliteral">&#39;$_SERVER[&quot;REMOTE_ADDR&quot;] = &quot;127.0.0.1&quot;;&#39;</span>;</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;  <span class="keywordflow">if</span> ($cookie) {</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    $output .= sprintf(<span class="stringliteral">&#39;$_COOKIE=unserialize(&quot;%s&quot;);&#39;</span>, str_replace(<span class="charliteral">&#39;&quot;&#39;</span>, <span class="charliteral">&#39;\&quot;&#39;</span>, $cookie));</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;  }</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;  <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    $output .= <span class="stringliteral">&#39;function _cli_cookie_print(){print(serialize(array(session_name()=&gt;session_id())));} register_shutdown_function(&quot;_cli_cookie_print&quot;);&#39;</span>;</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;  }</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;  <span class="keywordflow">return</span> $output;</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;}</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="comment"></span></div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="comment">/**</span></div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="comment"> * Utility function to check the install_task.  We are</span></div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="comment"> * not bootstrapped to a high enough level to use variable_get.</span></div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="keyword">function</span> _drush_site_install6_install_task() {</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;  <span class="keywordflow">if</span> ($data = db_result(db_query(<span class="stringliteral">&quot;SELECT value FROM {variable} WHERE name = &#39;install_task&#39;&quot;</span>,1))) {</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;    $result = unserialize($data);</div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;  }</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;  <span class="keywordflow">return</span> $result;</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Tue Mar 29 2016 07:27:28 for Drush by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.1.2
</small></address>
</body>
</html>