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:
Hannes Magnusson 2007-12-22 00:04:13 +00:00
parent 0a5a0d0fa7
commit 5583ef2a01
5 changed files with 252 additions and 156 deletions

48
reference/expect/book.xml Normal file
View 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
-->

View file

@ -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:

View 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
-->

View file

@ -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 &gt;= 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
-->

View 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 &gt;= 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
-->