mirror of
https://github.com/sigmasternchen/php-doc-en
synced 2025-03-15 16:38:54 +00:00
MFB: Upgrade to the new-reference-structure
- Moved the intro text to book.xml - Changed the intro ID to intro.<extname> from <extname>.intro - Changed constants.xml to be an appendix - Moved the examples into examples.xml NOTE: The chapter ID is expect.examples, the first example is expect.examples-usage - Moved the requirements and resources sections to setup.xml - Moved the configure and ini entities to setup.xml - Moved the constants entity to book.xml git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@248711 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
parent
0a5a0d0fa7
commit
5583ef2a01
5 changed files with 252 additions and 156 deletions
48
reference/expect/book.xml
Normal file
48
reference/expect/book.xml
Normal file
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision: 1.2 $ -->
|
||||
<!-- Purpose: fileprocess.process -->
|
||||
<!-- Membership: pecl -->
|
||||
|
||||
<book xml:id="book.expect" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Expect</title>
|
||||
|
||||
<!-- {{{ preface -->
|
||||
<preface xml:id="intro.expect">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
This extension allows to interact with processes through PTY. You may
|
||||
consider using the <link linkend="wrappers.expect"><literal>expect://</literal>
|
||||
wrapper</link> with the <link linkend="ref.filesystem">filesystem
|
||||
functions</link> which provide a simpler and more intuitive interface.
|
||||
</para>
|
||||
</preface>
|
||||
<!-- }}} -->
|
||||
|
||||
&reference.expect.setup;
|
||||
&reference.expect.constants;
|
||||
&reference.expect.examples;
|
||||
&reference.expect.reference;
|
||||
|
||||
</book>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"../../../manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version='1.0' encoding='iso-8859-1'?>
|
||||
<!-- $Revision: 1.3 $ -->
|
||||
<section xml:id="expect.constants" xmlns="http://docbook.org/ns/docbook">
|
||||
<!-- $Revision: 1.4 $ -->
|
||||
<appendix xml:id="expect.constants" xmlns="http://docbook.org/ns/docbook">
|
||||
&reftitle.constants;
|
||||
&extension.constants;
|
||||
<variablelist>
|
||||
|
@ -74,7 +74,7 @@
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</section>
|
||||
</appendix>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
|
|
139
reference/expect/examples.xml
Normal file
139
reference/expect/examples.xml
Normal file
|
@ -0,0 +1,139 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision: 1.2 $ -->
|
||||
|
||||
<chapter xml:id="expect.examples" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
&reftitle.examples;
|
||||
<section xml:id="expect.examples-usage">
|
||||
<title>Expect Usage Examples</title>
|
||||
<example>
|
||||
<title>Expect Usage Example</title>
|
||||
<para>
|
||||
This example connects to the remote host via SSH, and prints the remote
|
||||
uptime.
|
||||
</para>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
ini_set("expect.loguser", "Off");
|
||||
|
||||
$stream = fopen("expect://ssh root@remotehost uptime", "r");
|
||||
|
||||
$cases = array (
|
||||
array (0 => "password:", 1 => PASSWORD)
|
||||
);
|
||||
|
||||
switch (expect_expectl ($stream, $cases)) {
|
||||
case PASSWORD:
|
||||
fwrite ($stream, "password\n");
|
||||
break;
|
||||
|
||||
default:
|
||||
die ("Error was occurred while connecting to the remote host!\n");
|
||||
}
|
||||
|
||||
while ($line = fgets($stream)) {
|
||||
print $line;
|
||||
}
|
||||
fclose ($stream);
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
<para>
|
||||
The following example connects to the remote host, determines whether
|
||||
installed OS is for 32 or 64 bit, then runs update for specific package.
|
||||
</para>
|
||||
<example>
|
||||
<title>Another Expect Usage Example</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
ini_set("expect.timeout", -1);
|
||||
ini_set("expect.loguser", "Off");
|
||||
|
||||
$stream = expect_popen("ssh root@remotehost");
|
||||
|
||||
while (true) {
|
||||
switch (expect_expectl ($stream, array (
|
||||
array ("password:", PASSWORD), // SSH is asking for password
|
||||
array ("yes/no)?", YESNO), // SSH is asking whether to store the host entry
|
||||
array ("~$ ", SHELL, EXP_EXACT), // We've got the shell!
|
||||
))) {
|
||||
case PASSWORD:
|
||||
fwrite ($stream, "secret\n");
|
||||
break;
|
||||
|
||||
case YESNO:
|
||||
fwrite ($stream, "yes\n");
|
||||
break;
|
||||
|
||||
case SHELL:
|
||||
fwrite ($stream, "uname -a\n");
|
||||
while (true) {
|
||||
switch (expect_expectl ($stream, array (
|
||||
array ("~$ ", SHELL, EXP_EXACT), // We've got the shell!
|
||||
array ("^Linux.*$", UNAME, EXP_REGEXP), // uname -a output
|
||||
), $match)) {
|
||||
case UNAME:
|
||||
$uname .= $match[0];
|
||||
break;
|
||||
|
||||
case SHELL:
|
||||
// Run update:
|
||||
if (strstr ($uname, "x86_64")) {
|
||||
fwrite ($stream, "rpm -Uhv http://mirrorsite/somepath/some_64bit.rpm\n");
|
||||
} else {
|
||||
fwrite ($stream, "rpm -Uhv http://mirrorsite/somepath/some_32bit.rpm\n");
|
||||
}
|
||||
fwrite ($stream, "exit\n");
|
||||
break 2;
|
||||
|
||||
case EXP_TIMEOUT:
|
||||
case EXP_EOF:
|
||||
break 2;
|
||||
|
||||
default:
|
||||
die ("Error has occurred!\n");
|
||||
}
|
||||
}
|
||||
break 2;
|
||||
|
||||
case EXP_TIMEOUT:
|
||||
case EXP_EOF:
|
||||
break 2;
|
||||
|
||||
default:
|
||||
die ("Error has occurred!\n");
|
||||
}
|
||||
}
|
||||
|
||||
fclose ($stream);
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</section>
|
||||
</chapter>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"../../../manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
|
|
@ -1,162 +1,12 @@
|
|||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- $Revision: 1.9 $ -->
|
||||
<!-- Purpose: fileprocess.process -->
|
||||
<!-- Membership: pecl -->
|
||||
<!-- $Revision: 1.10 $ -->
|
||||
|
||||
<reference xml:id="ref.expect" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<title>Expect Functions</title>
|
||||
<titleabbrev>Expect</titleabbrev>
|
||||
|
||||
<partintro>
|
||||
<section xml:id="expect.intro">
|
||||
&reftitle.intro;
|
||||
<para>
|
||||
This extension allows to interact with processes through PTY. You may
|
||||
consider using the <link linkend="wrappers.expect"><literal>expect://</literal>
|
||||
wrapper</link> with the <link linkend="ref.filesystem">filesystem
|
||||
functions</link> which provide a simpler and more intuitive interface.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
<section xml:id="expect.requirements">
|
||||
&reftitle.required;
|
||||
<para>
|
||||
This module uses the functions of the <link
|
||||
xlink:href="&url.expect;">expect</link> library.
|
||||
You need libexpect version >= 5.43.0.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
&reference.expect.configure;
|
||||
|
||||
&reference.expect.ini;
|
||||
|
||||
<section xml:id="expect.resources">
|
||||
&reftitle.resources;
|
||||
<para>
|
||||
<function>expect_popen</function> returns an open PTY stream used by
|
||||
<function>expect_expectl</function>.
|
||||
</para>
|
||||
</section>
|
||||
|
||||
&reference.expect.constants;
|
||||
|
||||
<section xml:id="expect.examples">
|
||||
&reftitle.examples;
|
||||
<para>
|
||||
This example connects to the remote host via SSH, and prints the remote
|
||||
uptime.
|
||||
</para>
|
||||
<example>
|
||||
<title>Expect Usage Example</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
ini_set ("expect.loguser", "Off");
|
||||
|
||||
$stream = fopen ("expect://ssh root@remotehost uptime", "r");
|
||||
|
||||
$cases = array (
|
||||
array (0 => "password:", 1 => PASSWORD)
|
||||
);
|
||||
|
||||
switch (expect_expectl ($stream, $cases)) {
|
||||
case PASSWORD:
|
||||
fwrite ($stream, "password\n");
|
||||
break;
|
||||
|
||||
default:
|
||||
die ("Error was occurred while connecting to the remote host!\n");
|
||||
}
|
||||
|
||||
while ($line = fgets ($stream)) {
|
||||
print $line;
|
||||
}
|
||||
fclose ($stream);
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
|
||||
<para>
|
||||
The following example connects to the remote host, determines whether
|
||||
installed OS is for 32 or 64 bit, then runs update for specific package.
|
||||
</para>
|
||||
<example>
|
||||
<title>Another Expect Usage Example</title>
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
ini_set ("expect.timeout", -1);
|
||||
ini_set ("expect.loguser", "Off");
|
||||
|
||||
$stream = expect_popen ("ssh root@remotehost");
|
||||
|
||||
while (true) {
|
||||
switch (expect_expectl ($stream, array (
|
||||
array ("password:", PASSWORD), // SSH is asking for password
|
||||
array ("yes/no)?", YESNO), // SSH is asking whether to store the host entry
|
||||
array ("~$ ", SHELL, EXP_EXACT), // We've got the shell!
|
||||
))) {
|
||||
case PASSWORD:
|
||||
fwrite ($stream, "secret\n");
|
||||
break;
|
||||
|
||||
case YESNO:
|
||||
fwrite ($stream, "yes\n");
|
||||
break;
|
||||
|
||||
case SHELL:
|
||||
fwrite ($stream, "uname -a\n");
|
||||
while (true) {
|
||||
switch (expect_expectl ($stream, array (
|
||||
array ("~$ ", SHELL, EXP_EXACT), // We've got the shell!
|
||||
array ("^Linux.*$", UNAME, EXP_REGEXP), // uname -a output
|
||||
), $match)) {
|
||||
case UNAME:
|
||||
$uname .= $match[0];
|
||||
break;
|
||||
|
||||
case SHELL:
|
||||
// Run update:
|
||||
if (strstr ($uname, "x86_64")) {
|
||||
fwrite ($stream, "rpm -Uhv http://mirrorsite/somepath/some_64bit.rpm\n");
|
||||
} else {
|
||||
fwrite ($stream, "rpm -Uhv http://mirrorsite/somepath/some_32bit.rpm\n");
|
||||
}
|
||||
fwrite ($stream, "exit\n");
|
||||
break 2;
|
||||
|
||||
case EXP_TIMEOUT:
|
||||
case EXP_EOF:
|
||||
break 2;
|
||||
|
||||
default:
|
||||
die ("Error has occurred!\n");
|
||||
}
|
||||
}
|
||||
break 2;
|
||||
|
||||
case EXP_TIMEOUT:
|
||||
case EXP_EOF:
|
||||
break 2;
|
||||
|
||||
default:
|
||||
die ("Error has occurred!\n");
|
||||
}
|
||||
}
|
||||
|
||||
fclose ($stream);
|
||||
?>
|
||||
]]>
|
||||
</programlisting>
|
||||
</example>
|
||||
</section>
|
||||
</partintro>
|
||||
|
||||
<title>Expect &Functions;</title>
|
||||
&reference.expect.entities.functions;
|
||||
|
||||
</reference>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
|
@ -177,3 +27,4 @@ vim600: syn=xml fen fdm=syntax fdl=2 si
|
|||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
|
||||
|
|
58
reference/expect/setup.xml
Normal file
58
reference/expect/setup.xml
Normal file
|
@ -0,0 +1,58 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- $Revision: 1.2 $ -->
|
||||
|
||||
<chapter xml:id="expect.setup" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
&reftitle.setup;
|
||||
|
||||
<!-- {{{ Requirements -->
|
||||
<section xml:id="expect.requirements">
|
||||
&reftitle.required;
|
||||
<para>
|
||||
This module uses the functions of the <link
|
||||
xlink:href="&url.expect;">expect</link> library.
|
||||
You need libexpect version >= 5.43.0.
|
||||
</para>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
<!-- {{{ Installation -->
|
||||
&reference.expect.configure;
|
||||
<!-- }}} -->
|
||||
|
||||
<!-- {{{ Configuration -->
|
||||
&reference.expect.ini;
|
||||
<!-- }}} -->
|
||||
|
||||
<!-- {{{ Resources -->
|
||||
<section xml:id="expect.resources">
|
||||
&reftitle.resources;
|
||||
<para>
|
||||
<function>expect_popen</function> returns an open PTY stream used by
|
||||
<function>expect_expectl</function>.
|
||||
</para>
|
||||
</section>
|
||||
<!-- }}} -->
|
||||
|
||||
</chapter>
|
||||
|
||||
<!-- Keep this comment at the end of the file
|
||||
Local variables:
|
||||
mode: sgml
|
||||
sgml-omittag:t
|
||||
sgml-shorttag:t
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-always-quote-attributes:t
|
||||
sgml-indent-step:1
|
||||
sgml-indent-data:t
|
||||
indent-tabs-mode:nil
|
||||
sgml-parent-document:nil
|
||||
sgml-default-dtd-file:"../../../manual.ced"
|
||||
sgml-exposed-tags:nil
|
||||
sgml-local-catalogs:nil
|
||||
sgml-local-ecat-files:nil
|
||||
End:
|
||||
vim600: syn=xml fen fdm=syntax fdl=2 si
|
||||
vim: et tw=78 syn=sgml
|
||||
vi: ts=1 sw=1
|
||||
-->
|
||||
|
Loading…
Reference in a new issue