diff options
author | Laurent Bercot <ska-skaware@skarnet.org> | 2014-09-19 02:53:32 +0000 |
---|---|---|
committer | Laurent Bercot <ska-skaware@skarnet.org> | 2014-09-19 02:53:32 +0000 |
commit | bea0037dbdd979603fb0b5be8b43f5478c1f6fec (patch) | |
tree | 5776ae3af5a3e83d41c7087f70713952b6360988 /doc | |
download | s6-portable-utils-bea0037dbdd979603fb0b5be8b43f5478c1f6fec.tar.xz |
initial commit
Diffstat (limited to 'doc')
41 files changed, 2139 insertions, 0 deletions
diff --git a/doc/index.html b/doc/index.html new file mode 100644 index 0000000..1775002 --- /dev/null +++ b/doc/index.html @@ -0,0 +1,162 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils - skarnet.org's tiny general Unix utilities</title> + <meta name="Description" content="s6-portable-utils - skarnet.org's tiny general Unix utilities" /> + <meta name="Keywords" content="s6 unix administration root skarnet portable utilities tiny coreutils" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> s6-portable-utils </h1> + +<ul> +<li><a href="install.html">How to install s6-portable-utils</a></li> +<li><a href="upgrade.html">Upgrading from previous versions of s6-portable-utils</a></li> +</ul> + +<h2> What is it ? </h2> + +<p> + s6-portable-utils is a set of tiny general Unix utilities, often +performing well-known tasks such as <em>cut</em> and <em>grep</em>, +but optimized for simplicity and small size. They were designed +for embedded systems and other constrained environments, but they +work everywhere. +</p> + +<p> + Other set of small utilities are usually system-specific; for +instance, the (otherwise excellent) +<a href="http://busybox.net/">BusyBox</a> project only works on Linux. +</p> + +<p> + Some of s6-portable-utils' programs are a conformant implementation +of a POSIX utility as determined by the +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/nfindex.html">Single +Unix Specification, version 4</a>; the relevant documentation pages mentions +this. +However, none of the s6-portable-utils programs supports internationalization. +</p> + +<p> +It is now an explicit non-goal of s6-portable-utils to duplicate the work of +existing projects that aim to provide a lightweight implementation of +standard commands. + No more rewriting of standard commands will occur in s6-portable-utils; +the package is now used to host specific utilities such as +<a href="s6-uniquename.html"><tt>s6-uniquename</tt></a>. +</p> + +<hr /> + +<h2> Installation </h2> + +<h3> Requirements </h3> + +<ul> + <li> A POSIX-compliant system with a standard C development environment </li> + <li> GNU make, version 3.81 or later </li> + <li> <a href="http://skarnet.org/software/skalibs/">skalibs</a> version +2.0.0.0 or later </li> +</ul> + +<h3> Licensing </h3> + +<p> + s6-portable-utils is free software. It is available under the +<a href="http://opensource.org/licenses/ISC">ISC license</a>. +</p> + +<h3> Download </h3> + +<ul> + <li> The current released version of s6-portable-utils is +<a href="s6-portable-utils-2.0.0.0.tar.gz">2.0.0.0</a>. </li> + <li> Alternatively, you can checkout a copy of the s6-portable-utils git repository: +<pre> git clone git://git.skarnet.org/s6-portable-utils </pre> </li> +</ul> + +<h3> Compilation </h3> + +<ul> + <li> See the enclosed INSTALL file for installation details. </li> +</ul> + +<h3> Upgrade notes </h3> + +<ul> + <li> <a href="upgrade.html">This page</a> lists the differences to be aware of between +the previous versions of s6-portable-utils and the current one. </li> +</ul> + +<hr /> + +<h2> Reference </h2> + +<h3> Commands </h3> + +<p> + All these commands exit 111 if they encounter a temporary error, and +100 if they encounter a permanent error - such as a misuse. +</p> + +<ul> + <li> The <a href="s6-basename.html"><tt>s6-basename</tt></a> program </li> + <li> The <a href="s6-cat.html"><tt>s6-cat</tt></a> program </li> + <li> The <a href="s6-chmod.html"><tt>s6-chmod</tt></a> program </li> + <li> The <a href="s6-chown.html"><tt>s6-chown</tt></a> program </li> + <li> The <a href="s6-clock.html"><tt>s6-clock</tt></a> program </li> + <li> The <a href="s6-cut.html"><tt>s6-cut</tt></a> program </li> + <li> The <a href="s6-dirname.html"><tt>s6-dirname</tt></a> program </li> + <li> The <a href="s6-echo.html"><tt>s6-echo</tt></a> program </li> + <li> The <a href="s6-env.html"><tt>s6-env</tt></a> program </li> + <li> The <a href="s6-expr.html"><tt>s6-expr</tt></a> program </li> + <li> The <a href="s6-false.html"><tt>s6-false</tt></a> program </li> + <li> The <a href="s6-format-filter.html"><tt>s6-format-filter</tt></a> program </li> + <li> The <a href="s6-grep.html"><tt>s6-grep</tt></a> program </li> + <li> The <a href="s6-head.html"><tt>s6-head</tt></a> program </li> + <li> The <a href="s6-linkname.html"><tt>s6-linkname</tt></a> program </li> + <li> The <a href="s6-ln.html"><tt>s6-ln</tt></a> program </li> + <li> The <a href="s6-ls.html"><tt>s6-ls</tt></a> program </li> + <li> The <a href="s6-maximumtime.html"><tt>s6-maximumtime</tt></a> program </li> + <li> The <a href="s6-mkdir.html"><tt>s6-mkdir</tt></a> program </li> + <li> The <a href="s6-mkfifo.html"><tt>s6-mkfifo</tt></a> program </li> + <li> The <a href="s6-nice.html"><tt>s6-nice</tt></a> program </li> + <li> The <a href="s6-nuke.html"><tt>s6-nuke</tt></a> program </li> + <li> The <a href="s6-pause.html"><tt>s6-pause</tt></a> program </li> + <li> The <a href="s6-printenv.html"><tt>s6-printenv</tt></a> program </li> + <li> The <a href="s6-quote-filter.html"><tt>s6-quote-filter</tt></a> program </li> + <li> The <a href="s6-quote.html"><tt>s6-quote</tt></a> program </li> + <li> The <a href="s6-rename.html"><tt>s6-rename</tt></a> program </li> + <li> The <a href="s6-rmrf.html"><tt>s6-rmrf</tt></a> program </li> + <li> The <a href="s6-sleep.html"><tt>s6-sleep</tt></a> program </li> + <li> The <a href="s6-sort.html"><tt>s6-sort</tt></a> program </li> + <li> The <a href="s6-sync.html"><tt>s6-sync</tt></a> program </li> + <li> The <a href="s6-tail.html"><tt>s6-tail</tt></a> program </li> + <li> The <a href="s6-test.html"><tt>s6-test</tt></a> program </li> + <li> The <a href="s6-touch.html"><tt>s6-touch</tt></a> program </li> + <li> The <a href="s6-true.html"><tt>s6-true</tt></a> program </li> + <li> The <a href="s6-uniquename.html"><tt>s6-uniquename</tt></a> program </li> + <li> The <a href="s6-unquote-filter.html"><tt>s6-unquote-filter</tt></a> program </li> + <li> The <a href="s6-unquote.html"><tt>s6-unquote</tt></a> program </li> + <li> The <a href="s6-update-symlinks.html"><tt>s6-update-symlinks</tt></a> program </li> +</ul> + +<h2> Related resources </h2> + +<ul> + <li> <tt>s6-portable-utils</tt> is discussed on the +<a href="http://skarnet.org/lists.html#skaware">skaware</a> mailing-list. </li> + </li> +</ul> + +</body> +</html> diff --git a/doc/s6-basename.html b/doc/s6-basename.html new file mode 100644 index 0000000..b656599 --- /dev/null +++ b/doc/s6-basename.html @@ -0,0 +1,50 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-basename program</title> + <meta name="Description" content="s6-portable-utils: the s6-basename program" /> + <meta name="Keywords" content="s6-portable-utils command s6-basename basename" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-basename</tt> program </h1> + +<p> + s6-basename prints the basename of a pathname. +</p> + +<h2> Interface </h2> + +<pre> + s6-basename [ -n ] <em>path</em> [ <em>suffix</em> ] +</pre> + +<p> + s6-basename acts as the generic +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/basename.html">basename</a> utility. +</p> + +<h2> Extra options </h2> + +<ul> + <li> <tt>-n</tt> : do not print a trailing newline after the output. </li> +</ul> + +<h2> Posixness </h2> + +<p> + s6-basename <strong>is</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/basename.html">basename</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-cat.html b/doc/s6-cat.html new file mode 100644 index 0000000..71610e8 --- /dev/null +++ b/doc/s6-cat.html @@ -0,0 +1,51 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-cat program</title> + <meta name="Description" content="s6-portable-utils: the s6-cat program" /> + <meta name="Keywords" content="s6-portable-utils command s6-cat cat" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-cat</tt> program </h1> + +<p> + s6-cat copies stdin to stdout. +</p> + +<h2> Interface </h2> + +<pre> + s6-cat +</pre> + +<p> + s6-cat transfers data from stdin to stdout, until it receives EOF or +gets killed. +</p> + +<h2> Notes </h2> + +<p> + On systems that support it (as of 2.0.0.0, only Linux 2.6.17 or later), +s6-cat performs zero-copy transfer. +</p> + +<h2> Posixness </h2> + +<p> + s6-cat <strong>is not</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cat.html">cat</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-chmod.html b/doc/s6-chmod.html new file mode 100644 index 0000000..165790c --- /dev/null +++ b/doc/s6-chmod.html @@ -0,0 +1,45 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-chmod program</title> + <meta name="Description" content="s6-portable-utils: the s6-chmod program" /> + <meta name="Keywords" content="s6-portable-utils command s6-chmod chmod" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-chmod</tt> program </h1> + +<p> + s6-chmod changes the permissions of a file. +</p> + +<h2> Interface </h2> + +<pre> + s6-chmod perms file +</pre> + +<p> + s6-chmod changes <em>file</em>'s permissions to <em>perms</em>, which +must be an absolute octal number such as 0755 for +<tt>rwxr-xr-x</tt> or 2700 for <tt>rwx--S---</tt>. +</p> + +<h2> Posixness </h2> + +<p> + s6-chmod <strong>is not</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/chmod.html">chmod</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-chown.html b/doc/s6-chown.html new file mode 100644 index 0000000..0cbbe57 --- /dev/null +++ b/doc/s6-chown.html @@ -0,0 +1,52 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-chown program</title> + <meta name="Description" content="s6-portable-utils: the s6-chown program" /> + <meta name="Keywords" content="s6-portable-utils command s6-chown chown" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-chown</tt> program </h1> + +<p> + s6-chown changes the owner and/or group of a file. +</p> + +<h2> Interface </h2> + +<pre> + s6-chown [ -U ] [ -u uid ] [ -g gid ] file +</pre> + +<ul> + <li> s6-chown changes <em>file</em>'s owner to (numeric) <em>uid</em> and group +to (numeric) <em>gid</em>. </li> + <li> If <em>uid</em> isn't provided, the owner remains the same; if <em>gid</em> +isn't provided, the group remains the same. </li> + <li> The <tt>-U</tt> option sets <em>uid</em> to the value of the UID +environment variable and <em>gid</em> to the value of the GID environment variable. +This makes s6-chown easily usable with +<a href="http://www.skarnet.org/software/s6/s6-envuidgid.html">s6-envuidgid</a>: +<tt> s6-envuidgid account s6-chown -U file </tt> changes <em>file</em>'s uid and +gid to <em>account</em>'s. </li> +</ul> + +<h2> Posixness </h2> + +<p> + s6-chown <strong>is not</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/chown.html">chown</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-clock.html b/doc/s6-clock.html new file mode 100644 index 0000000..37e05ec --- /dev/null +++ b/doc/s6-clock.html @@ -0,0 +1,54 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-clock program</title> + <meta name="Description" content="s6-portable-utils: the s6-clock program" /> + <meta name="Keywords" content="s6-portable-utils command s6-clock clock" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-clock</tt> program </h1> + +<p> + s6-clock gets or sets the system clock. +</p> + +<h2> Interface </h2> + +<pre> + s6-clock [ <em>label</em> ] +</pre> + +<p> + When called without an argument, s6-clock writes the current system +time, as a +<a href="http://skarnet.org/software/skalibs/libstddjb/tai.html#timestamp">TAI64N +timestamp</a>, to stdout. +</p> + +<p> + When given an argument <em>label</em>, which must be a +<a href="http://skarnet.org/software/skalibs/libstddjb/tai.html#timestamp">TAI64N +timestamp</a>, s6-clock sets the system time to this value. +</p> + +<h2> Notes </h2> + +<p> + s6-clock only prints or accepts TAI time, no matter what the system clock is set +to (TAI-10 or UTC); it will automatically make the right conversions for your +system clock. Make sure your +<a href="http://skarnet.org/software/skalibs/">skalibs</a> has been built with +the right settings. +</p> + +</body> +</html> diff --git a/doc/s6-cut.html b/doc/s6-cut.html new file mode 100644 index 0000000..2d93762 --- /dev/null +++ b/doc/s6-cut.html @@ -0,0 +1,44 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-cut program</title> + <meta name="Description" content="s6-portable-utils: the s6-cut program" /> + <meta name="Keywords" content="s6-portable-utils command s6-cut cut" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-cut</tt> program </h1> + +<p> + s6-cut prints selected portions of the lines of its input. +</p> + +<h2> Interface </h2> + +<pre> + s6-cut [ -b list | -c list | -f list ] [ -n ] [ -s ] [ file ... ] +</pre> + +<p> + s6-cut acts as the generic +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cut.html">cut</a> utility. +</p> + +<h2> Posixness </h2> + +<p> + s6-cut <strong>is</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/cut.html">cut</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-dirname.html b/doc/s6-dirname.html new file mode 100644 index 0000000..4fee876 --- /dev/null +++ b/doc/s6-dirname.html @@ -0,0 +1,50 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-dirname program</title> + <meta name="Description" content="s6-portable-utils: the s6-dirname program" /> + <meta name="Keywords" content="s6-portable-utils command s6-dirname dirname" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-dirname</tt> program </h1> + +<p> + s6-dirname prints the dirname of a path. +</p> + +<h2> Interface </h2> + +<pre> + s6-dirname [ -n ] path +</pre> + +<p> + s6-dirname acts as the generic +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/dirname.html">dirname</a> utility. +</p> + +<h2> Extra options </h2> + +<ul> + <li> <tt>-n</tt> : do not print a trailing newline after the output. </li> +</ul> + +<h2> Posixness </h2> + +<p> + s6-dirname <strong>is</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/dirname.html">dirname</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-echo.html b/doc/s6-echo.html new file mode 100644 index 0000000..5cbcc88 --- /dev/null +++ b/doc/s6-echo.html @@ -0,0 +1,51 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-echo program</title> + <meta name="Description" content="s6-portable-utils: the s6-echo program" /> + <meta name="Keywords" content="s6-portable-utils command s6-echo echo" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-echo</tt> program </h1> + +<p> + s6-echo writes its arguments to stdout. +</p> + +<h2> Interface </h2> + +<pre> + s6-echo [ -n ] [ -s sep ] <em>args...</em> +</pre> + +<p> + s6-echo writes its arguments <em>args</em> to stdout, separated with spaces. +</p> + +<h2> Options </h2> + +<ul> + <li> <tt>-n</tt> : do not output a trailing newline. </li> + <li> <tt>-s</tt> <em>sep</em> : separate arguments with the <em>sep</em> +character instead of a space. </li> +</ul> + +<h2> Posixness </h2> + +<p> + s6-echo <strong>is not</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html">echo</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-env.html b/doc/s6-env.html new file mode 100644 index 0000000..fa53a45 --- /dev/null +++ b/doc/s6-env.html @@ -0,0 +1,45 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-env program</title> + <meta name="Description" content="s6-portable-utils: the s6-env program" /> + <meta name="Keywords" content="s6-portable-utils command s6-env env" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-env</tt> program </h1> + +<p> +s6-env prints the current environment or modifies the environment +before running a program. +</p> + +<h2> Interface </h2> + +<pre> + s6-env [ -i ] [ <em>name</em>=<em>value</em>... ] [ <em>prog...</em> ] +</pre> + +<p> + s6-env acts as the generic +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/env.html">env</a> utility. +</p> + +<h2> Posixness </h2> + +<p> + s6-env <strong>is</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/env.html">env</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-expr.html b/doc/s6-expr.html new file mode 100644 index 0000000..b535eb6 --- /dev/null +++ b/doc/s6-expr.html @@ -0,0 +1,50 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-expr program</title> + <meta name="Description" content="s6-portable-utils: the s6-expr program" /> + <meta name="Keywords" content="s6-portable-utils command s6-expr expr" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-expr</tt> program </h1> + +<p> + s6-expr evaluates an expression and writes the result to stdout. +</p> + +<h2> Interface </h2> + +<pre> + s6-expr <em>expression...</em> +</pre> + +<p> + s6-expr acts as the generic +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/expr.html">expr</a> utility, +except that the <strong>:</strong> operator (pattern matching) is not supported. +</p> + +<p> + s6-expr accepts an arbitrary number of arguments. +</p> + +<h2> Posixness </h2> + +<p> + s6-expr <strong>is not</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/expr.html">expr</a> +program; however, if you are never using the pattern matching functionality, s6-expr +scrupulously follows the rest of the specification. +</p> + +</body> +</html> diff --git a/doc/s6-false.html b/doc/s6-false.html new file mode 100644 index 0000000..4b21046 --- /dev/null +++ b/doc/s6-false.html @@ -0,0 +1,39 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-false program</title> + <meta name="Description" content="s6-portable-utils: the s6-false program" /> + <meta name="Keywords" content="s6-portable-utils command s6-false" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-false</tt> program </h1> + +<p> + s6-false returns 1. +</p> + +<h2> Interface </h2> + +<pre> + s6-false +</pre> + +<h2> Posixness </h2> + +<p> + s6-false <strong>is</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/false.html">false</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-format-filter.html b/doc/s6-format-filter.html new file mode 100644 index 0000000..4492786 --- /dev/null +++ b/doc/s6-format-filter.html @@ -0,0 +1,42 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-format-filter program</title> + <meta name="Description" content="s6-portable-utils: the s6-format-filter program" /> + <meta name="Keywords" content="s6-portable-utils command s6-format filter printf format" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-format-filter</tt> program </h1> + +<p> +s6-format-filter processes lines according to its arguments, and +prints the result. +</p> + +<h2> Interface </h2> + +<pre> + s6-format-filter <em>format</em> [ <em>args...</em> ] +</pre> + +<ul> + <li> <em>format</em> is a format string that can contain the following special sequences: +<tt>%%</tt>, <tt>%s</tt>, and <tt>%0</tt> to <tt>%9</tt>. </li> + <li> For every line it reads on stdin, s6-format-filter prints <em>format</em> on +stdout, replacing <tt>%%</tt> with <tt>%</tt>, <tt>%0</tt> with the command name +(probably <tt>s6-format-filter</tt>), <tt>%1</tt> to <tt>%9</tt> with the first +to the ninth argument in <em>args</em>, and <tt>%s</tt> with the input line. </li> + <li> s6-format-filter exits 0 when it reads EOF. </li> +</ul> + +</body> +</html> diff --git a/doc/s6-grep.html b/doc/s6-grep.html new file mode 100644 index 0000000..fc0cb1b --- /dev/null +++ b/doc/s6-grep.html @@ -0,0 +1,67 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-grep program</title> + <meta name="Description" content="s6-portable-utils: the s6-grep program" /> + <meta name="Keywords" content="s6-portable-utils command s6-grep grep" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-grep</tt> program </h1> + +<p> + s6-grep matches its input against a pattern. +</p> + +<h2> Interface </h2> + +<pre> + s6-grep [ -E | -F ] [ -i ] [ -c ] [ -n ] [ -q ] [ -v ] <em>pattern</em> +</pre> + +<ul> + <li> s6-grep compiles <em>pattern</em> as an +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_03">Basic +Regular Expression</a> </li> + <li> It reads stdin and matches every line against this regexp </li> + <li> If the line matches, it prints it to stdout </li> + <li> It exits on EOF with code 0 if one or more lines matched and 1 +otherwise. </li> +</ul> + +<h2> Options </h2> + +<ul> + <li> <tt>-F</tt> : <em>pattern</em> is not compiled as a BRE, but is +interpreted as a literal string. </li> + <li> <tt>-E</tt> : <em>pattern</em> is not compiled as a BRE, but as an +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04">Extended +Regular Expression</a> (ERE). </li> + <li> <tt>-i</tt> : ignore case during the match </li> + <li> <tt>-c</tt> : do not write normal output; only write the number of +lines that have matched <em>pattern</em> after EOF is received </li> + <li> <tt>-n</tt> : precede every output line by its number and a colon. +The first input line has number 1. </li> + <li> <tt>-q</tt> : do not write anything to stdout </li> + <li> <tt>-v</tt> : invert the pattern matching (select lines that do not +match <em>pattern</em>). </li> +</ul> + +<h2> Posixness </h2> + +<p> + s6-grep <strong>is not</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/grep.html">grep</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-head.html b/doc/s6-head.html new file mode 100644 index 0000000..3fd3360 --- /dev/null +++ b/doc/s6-head.html @@ -0,0 +1,55 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-head program</title> + <meta name="Description" content="s6-portable-utils: the s6-head program" /> + <meta name="Keywords" content="s6-portable-utils command s6-head head" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-head</tt> program </h1> + +<p> + s6-head prints the first lines of its input files. +</p> + +<h2> Interface </h2> + +<pre> + s6-head [ -S ] [ -1..9 | -n <em>lines</em> | -c <em>chars</em> ] <em>file...</em> +</pre> + +<p> + s6-head acts as the generic +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/head.html">head</a> utility. +</p> + +<h2> Extra options </h2> + +<ul> + <li> <tt>-S</tt> : safe mode. s6-head stops reading its input files <em>right after</em> +getting all the lines it needs. The rest of the stream can then be handled by other +utilities without any data loss. </li> + <li> <tt>-1..9</tt> : equivalent to <tt>-n 1</tt> .. <tt>-n 9</tt>. </li> + <li> <tt>-c</tt> <em>chars</em> : cuts after <em>chars</em> characters instead +of <em>lines</em> lines. </li> +</ul> + +<h2> Posixness </h2> + +<p> + s6-head <strong>is</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/head.html">head</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-linkname.html b/doc/s6-linkname.html new file mode 100644 index 0000000..e4caf84 --- /dev/null +++ b/doc/s6-linkname.html @@ -0,0 +1,45 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-linkname program</title> + <meta name="Description" content="s6-portable-utils: the s6-linkname program" /> + <meta name="Keywords" content="s6-portable-utils command s6-linkname linkname readlink" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-linkname</tt> program </h1> + +<p> + s6-linkname gives the content of a symbolic link or resolves a path. +</p> + +<h2> Interface </h2> + +<pre> + s6-linkname [ -f ] <em>path</em> +</pre> + +<ul> + <li> If <em>path</em> is a symbolic link, s6-linkname prints its +content then exits 0. </li> + <li> Else it prints an error message and exits 111. </li> +</ul> + +<h2> Options </h2> + +<ul> + <li> <tt>-f</tt> : s6-linkname fully resolves <em>path</em> then +prints the result on stdout. <em>path</em> does not have to be a symbolic +link. </li> +</ul> + +</body> +</html> diff --git a/doc/s6-ln.html b/doc/s6-ln.html new file mode 100644 index 0000000..392476f --- /dev/null +++ b/doc/s6-ln.html @@ -0,0 +1,44 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-ln program</title> + <meta name="Description" content="s6-portable-utils: the s6-ln program" /> + <meta name="Keywords" content="s6-portable-utils command s6-ln ln link symbolic hard" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-ln</tt> program </h1> + +<p> + s6-ln creates a link to a file. +</p> + +<h2> Interface </h2> + +<pre> + s6-ln [ -s ] [ -f ] [ -L ] [ -P ] <em>old</em> <em>new</em> +</pre> + +<p> + s6-ln acts as the generic +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ln.html">ln</a> utility. +</p> + +<h2> Posixness </h2> + +<p> + s6-ln <strong>is</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ln.html">ln</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-ls.html b/doc/s6-ls.html new file mode 100644 index 0000000..492ea25 --- /dev/null +++ b/doc/s6-ls.html @@ -0,0 +1,57 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-ls program</title> + <meta name="Description" content="s6-portable-utils: the s6-ls program" /> + <meta name="Keywords" content="s6-portable-utils command s6-ls ls directory list" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-ls</tt> program </h1> + +<p> + s6-ls lists the contents of a directory. +</p> + +<h2> Interface </h2> + +<pre> + s6-ls [ -0 ] [ -a | -A ] [ -x <em>exclude</em> ] <em>dir</em> +</pre> + +<p> + s6-ls lists the contents of <em>dir</em>, one file per line. It +omits files starting with a dot. +</p> + +<h2> Options </h2> + +<ul> + <li> <tt>-0</tt> : separate file names with a null character +instead of a newline. </li> + <li> <tt>-a</tt> : do not omit files starting with a dot. Do +not list <tt>.</tt> or <tt>..</tt> though. </li> + <li> <tt>-A</tt> : do not omit files starting with a dot, even +<tt>.</tt> and <tt>..</tt> </li> + <li> <tt>-x</tt> <em>exclude</em> : if a file name is +<em>exclude</em>, do not print it. </li> +</ul> + +<h2> Posixness </h2> + +<p> + s6-ls <strong>is not</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/ls.html">ls</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-maximumtime.html b/doc/s6-maximumtime.html new file mode 100644 index 0000000..eea72b3 --- /dev/null +++ b/doc/s6-maximumtime.html @@ -0,0 +1,53 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-maximumtime program</title> + <meta name="Description" content="s6-portable-utils: the s6-maximumtime program" /> + <meta name="Keywords" content="s6-portable-utils command s6-maximumtime maximumtime timelimit time limit" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-maximumtime</tt> program </h1> + +<p> + s6-maximumtime executes a program with a time limit. +</p> + +<h2> Interface </h2> + +<pre> + s6-maximumtime [ -0 | -a | -b | -i | -k | -q | -t | -x | -1 | -2 ] <em>milli</em> <em>prog...</em> +</pre> + +<ul> + <li> s6-maximumtime forks and execs <em>prog...</em> as a child. </li> + <li> If <em>milli</em> milliseconds elapse before <em>prog</em> exits, +s6-maximumtime sends it a signal and exits 99 with a message. </li> + <li> Else s6-maximumtime exits with the same exit code as <em>prog</em>. </li> +</ul> + +<h2> Options </h2> + +<ul> + <li> <tt>-0</tt> : on timeout, do not send any signal, just exit </li> + <li> <tt>-a</tt> : on timeout, send a SIGALRM </li> + <li> <tt>-b</tt> : on timeout, send a SIGABRT </li> + <li> <tt>-i</tt> : on timeout, send a SIGINT </li> + <li> <tt>-k</tt> : on timeout, send a SIGKILL </li> + <li> <tt>-q</tt> : on timeout, send a SIGQUIT </li> + <li> <tt>-t</tt> : on timeout, send a SIGTERM - this is the default </li> + <li> <tt>-x</tt> : on timeout, send a SIGXCPU </li> + <li> <tt>-1</tt> : on timeout, send a SIGUSR1 </li> + <li> <tt>-2</tt> : on timeout, send a SIGUSR2 </li> +</ul> + +</body> +</html> diff --git a/doc/s6-mkdir.html b/doc/s6-mkdir.html new file mode 100644 index 0000000..8dd0e02 --- /dev/null +++ b/doc/s6-mkdir.html @@ -0,0 +1,50 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-mkdir program</title> + <meta name="Description" content="s6-portable-utils: the s6-mkdir program" /> + <meta name="Keywords" content="s6-portable-utils command s6-mkdir mkdir" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-mkdir</tt> program </h1> + +<p> + s6-mkdir creates directories. +</p> + +<h2> Interface </h2> + +<pre> + s6-mkdir [ -p ] [ -v ] [ -m <em>mode</em> ] [ <em>dir...</em> ] +</pre> + +<p> + s6-mkdir acts as the generic +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/mkdir.html">mkdir</a> utility. +</p> + +<h2> Extra options </h2> + +<ul> + <li> <tt>-v</tt> : write what it does to stderr. </li> +</ul> + +<h2> Posixness </h2> + +<p> + s6-mkdir <strong>is</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/mkdir.html">mkdir</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-mkfifo.html b/doc/s6-mkfifo.html new file mode 100644 index 0000000..5f38072 --- /dev/null +++ b/doc/s6-mkfifo.html @@ -0,0 +1,44 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-mkfifo program</title> + <meta name="Description" content="s6-portable-utils: the s6-mkfifo program" /> + <meta name="Keywords" content="s6-portable-utils command s6-mkfifo mkfifo" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-mkfifo</tt> program </h1> + +<p> + s6-mkfifo creates FIFOs, a.k.a. named pipes. +</p> + +<h2> Interface </h2> + +<pre> + s6-mkfifo [ -m mode ] [ <em>fifo...</em> ] +</pre> + +<p> + s6-mkfifo acts as the generic +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/mkfifo.html">mkfifo</a> utility. +</p> + +<h2> Posixness </h2> + +<p> + s6-mkfifo <strong>is</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/mkfifo.html">mkfifo</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-nice.html b/doc/s6-nice.html new file mode 100644 index 0000000..98149c8 --- /dev/null +++ b/doc/s6-nice.html @@ -0,0 +1,53 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-nice program</title> + <meta name="Description" content="s6-portable-utils: the s6-nice program" /> + <meta name="Keywords" content="s6-portable-utils command s6-nice nice" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">www.skarnet.org</a> +</p> + +<h1> The <tt>s6-nice</tt> program </h1> + +<p> + s6-nice executes into a program with an altered nice value. +</p> + +<h2> Interface </h2> + +<pre> + s6-nice [ -I | -i ] [ -n <em>value</em> ] [ <em>prog...</em> ] +</pre> + +<p> + s6-nice acts as the generic +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/nice.html">nice</a> utility. +</p> + +<h2> Extra options </h2> + +<ul> + <li> <tt>-I</tt> : loose. If the nice value cannot be set to <em>value</em>, +print a warning message and exec into <em>prog...</em> anyway. This is the default. </li> + <li> <tt>-i</tt> : strict. If the nice value cannot be set to <em>value</em>, +exit 111 with an error message. +</ul> + +<h2> Posixness </h2> + +<p> + s6-nice <strong>is</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/nice.html">nice</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-nuke.html b/doc/s6-nuke.html new file mode 100644 index 0000000..3db674c --- /dev/null +++ b/doc/s6-nuke.html @@ -0,0 +1,56 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-nuke program</title> + <meta name="Description" content="s6-portable-utils: the s6-nuke program" /> + <meta name="Keywords" content="s6-portable-utils command s6-nuke signal kill" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-nuke</tt> program </h1> + +<p> + s6-nuke sends signals to every process it is allowed to send. +</p> + +<h2> Interface </h2> + +<pre> + s6-nuke [ -h | -t | -k ] +</pre> + +<ul> + <li> Depending on the options it is given, s6-nuke sends signals to +all processes; depending on s6-nuke's rights, not all processes may +receive them. </li> + <li> s6-nuke protects itself against the signals it sends (which +doesn't do much good against SIGKILL). If it survives the blast, +it exits 0. </li> +</ul> + +<h2> Options </h2> + +<ul> + <li> <tt>-h</tt> : send a SIGHUP </li> + <li> <tt>-t</tt> : send a SIGTERM then a SIGCONT </li> + <li> <tt>-k</tt> : send a SIGKILL </li> +</ul> + +<h2> Usage notes </h2> + +<p> + s6-nuke can be used during the shutdown procedure of a system, which is +described +<a href="http://skarnet.org/software/s6/s6-svscan-1.html#stage3">here</a>. +</p> + +</body> +</html> diff --git a/doc/s6-pause.html b/doc/s6-pause.html new file mode 100644 index 0000000..edb129f --- /dev/null +++ b/doc/s6-pause.html @@ -0,0 +1,39 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-pause program</title> + <meta name="Description" content="s6-portable-utils: the s6-pause program" /> + <meta name="Keywords" content="s6-portable-utils command s6-pause pause" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-pause</tt> program </h1> + +<p> + s6-pause blocks until it is killed. +</p> + +<h2> Interface </h2> + +<pre> + s6-pause +</pre> + +<h2> Usage notes </h2> + +<p> + s6-pause is one of the smallest possible long-lived programs. It can be +used to emulate a running service with the least possible resource +consumption. +</p> + +</body> +</html> diff --git a/doc/s6-printenv.html b/doc/s6-printenv.html new file mode 100644 index 0000000..96216ab --- /dev/null +++ b/doc/s6-printenv.html @@ -0,0 +1,46 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-printenv program</title> + <meta name="Description" content="s6-portable-utils: the s6-printenv program" /> + <meta name="Keywords" content="s6-portable-utils command s6-printenv environment variables" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-printenv</tt> program </h1> + +<p> + s6-printenv prints its environment variables. +</p> + +<h2> Interface </h2> + +<pre> + s6-printenv [ -n ] [ -0 | -d <em>delim</em> ] +</pre> + +<p> + s6-printenv prints its environment on stdout, like +<a href="s6-env.html">s6-env</a>. +</p> + +<h2> Options </h2> + +<ul> + <li> <tt>-0</tt> : separate file names with a null character +instead of a newline. </li> + <li> <tt>-d</tt> <em>delim</em> : separate file names with the +first character of <em>delim</em> instead of a newline </li> + <li> <tt>-n</tt> : omit the last delimiter character </li> +</ul> + +</body> +</html> diff --git a/doc/s6-quote-filter.html b/doc/s6-quote-filter.html new file mode 100644 index 0000000..867acbe --- /dev/null +++ b/doc/s6-quote-filter.html @@ -0,0 +1,56 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-quote-filter program</title> + <meta name="Description" content="s6-portable-utils: the s6-quote-filter program" /> + <meta name="Keywords" content="s6-portable-utils command s6-quote-filter quote" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-quote-filter</tt> program </h1> + +<p> + s6-quote-filter acts as a filter, quoting lines it reads on stdin +and writing the quoted lines to stdout. +</p> + +<h2> Interface </h2> + +<pre> + s6-quote-filter [ -u ] [ -d <em>delim</em> ] +</pre> + +<ul> + <li> s6-quote reads lines on stdin; it quotes every line, putting it inside double quotes +and escaping all dubious characters </li> + <li> It writes the quoted strings to stdout </li> + <li> It exits 0 on EOF </li> +</ul> + +<h2> Options </h2> + +<ul> + <li> <tt>-u</tt> : do not put read lines inside double quotes, only escape +characters if needed </li> + <li> <tt>-d</tt> <em>delim</em> : use the first character of <em>delim</em> +as a quote character, instead of double quotes </li> +</ul> + +<h2> Notes </h2> + +<ul> + <li> Quoted strings are guaranteed to be pure printable ASCII, without control characters. </li> + <li> Quoted strings can be unquoted via the <a href="s6-unquote.html">s6-unquote</a> or +<a href="s6-unquote-filter.html">s6-unquote-filter</a> programs. </li> +</ul> + +</body> +</html> diff --git a/doc/s6-quote.html b/doc/s6-quote.html new file mode 100644 index 0000000..a24069f --- /dev/null +++ b/doc/s6-quote.html @@ -0,0 +1,57 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-quote program</title> + <meta name="Description" content="s6-portable-utils: the s6-quote program" /> + <meta name="Keywords" content="s6-portable-utils command s6-quote quote" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-quote</tt> program </h1> + +<p> + s6-quote quotes a string and writes it to stdout. +</p> + +<h2> Interface </h2> + +<pre> + s6-quote [ -n ] [ -u ] [ -d <em>delim</em> ] <em>string</em> +</pre> + +<ul> + <li> s6-quote quotes <em>string</em>, putting it inside double quotes +and escaping all dubious characters </li> + <li> It writes the quoted string to stdout and exits 0 </li> +</ul> + +<h2> Options </h2> + +<ul> + <li> <tt>-n</tt> : do not print a trailing newline </li> + <li> <tt>-u</tt> : do not put <em>string</em> inside double quotes, only escape +characters if needed </li> + <li> <tt>-d</tt> <em>delim</em> : use the first character of <em>delim</em> +as a quote character, instead of double quotes </li> +</ul> + +<h2> Notes </h2> + +<ul> + <li> Quoted strings are guaranteed to be pure printable ASCII, without control characters. </li> + <li> Quoted strings can be unquoted via the <a href="s6-unquote.html">s6-unquote</a> or +<a href="s6-unquote-filter.html">s6-unquote-filter</a> programs. </li> + <li> Quoted strings are suitable for interpretation by +<a href="http://skarnet.org/software/execline/execlineb.html">execlineb</a>. </li> +</ul> + +</body> +</html> diff --git a/doc/s6-rename.html b/doc/s6-rename.html new file mode 100644 index 0000000..1691328 --- /dev/null +++ b/doc/s6-rename.html @@ -0,0 +1,35 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-rename program</title> + <meta name="Description" content="s6-portable-utils: the s6-rename program" /> + <meta name="Keywords" content="s6-portable-utils command s6-rename rename atomic" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-rename</tt> program </h1> + +<p> + s6-rename atomically renames a file. +</p> + +<h2> Interface </h2> + +<pre> + s6-rename <em>old</em> <em>new</em> +</pre> + +<p> + s6-rename atomically renames <em>old</em> to <em>new</em>. +</p> + +</body> +</html> diff --git a/doc/s6-rmrf.html b/doc/s6-rmrf.html new file mode 100644 index 0000000..ccbded4 --- /dev/null +++ b/doc/s6-rmrf.html @@ -0,0 +1,35 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-rmrf program</title> + <meta name="Description" content="s6-portable-utils: the s6-rmrf program" /> + <meta name="Keywords" content="s6-portable-utils command s6-rmrf rm remove delete" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-rmrf</tt> program </h1> + +<p> + s6-rmrf removes a file or directory tree entirely. +</p> + +<h2> Interface </h2> + +<pre> + s6-rmrf <em>subtree</em> +</pre> + +<p> + s6-rmrf removes the <em>subtree</em> file hierarchy. +</p> + +</body> +</html> diff --git a/doc/s6-sleep.html b/doc/s6-sleep.html new file mode 100644 index 0000000..68137d3 --- /dev/null +++ b/doc/s6-sleep.html @@ -0,0 +1,51 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-sleep program</title> + <meta name="Description" content="s6-portable-utils: the s6-sleep program" /> + <meta name="Keywords" content="s6-portable-utils command s6-sleep sleep" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-sleep</tt> program </h1> + +<p> + s6-sleep sleeps for a given time. +</p> + +<h2> Interface </h2> + +<pre> + s6-sleep [ -m ] <em>time</em> +</pre> + +<p> + s6-sleep acts as the generic +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sleep.html">sleep</a> utility. +It ignores non-lethal signals. +</p> + +<h2> Extra options </h2> + +<ul> + <li> <tt>-m</tt> : Interpret <em>time</em> as milliseconds instead of seconds. </li> +</ul> + +<h2> Posixness </h2> + +<p> + s6-sleep <strong>is</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sleep.html">sleep</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-sort.html b/doc/s6-sort.html new file mode 100644 index 0000000..5e2d468 --- /dev/null +++ b/doc/s6-sort.html @@ -0,0 +1,59 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-sort program</title> + <meta name="Description" content="s6-portable-utils: the s6-sort program" /> + <meta name="Keywords" content="s6-portable-utils command s6-sort sort" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-sort</tt> program </h1> + +<p> + s6-sort sorts its input. +</p> + +<h2> Interface </h2> + +<pre> + s6-sort [ -b ] [ -c ] [ -f ] [ -r ] [ -u ] [ -0 ] +</pre> + +<ul> + <li> s6-sort reads its stdin until EOF </li> + <li> It sorts all the lines it read alphanumerically </li> + <li> It prints the sorted lines to stdout and exits 0 </li> +</ul> + +<h2> Options </h2> + +<ul> + <li> <tt>-b</tt> : ignore leading spaces and tabs at the beginning of each +line when sorting </li> + <li> <tt>-c</tt> : suppresses normal output, just returns 0 if the output +would have been the same as the input and 1 otherwise </li> + <li> <tt>-f</tt> : ignore case when sorting </li> + <li> <tt>-r</tt> : reverse sort </li> + <li> <tt>-u</tt> : suppresses duplicate lines </li> + <li> <tt>-0</tt> : input and output lines are separated by null characters +instead of newlines </li> +</ul> + +<h2> Posixness </h2> + +<p> + s6-sort <strong>is not</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/sort.html">sort</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-sync.html b/doc/s6-sync.html new file mode 100644 index 0000000..daf88f3 --- /dev/null +++ b/doc/s6-sync.html @@ -0,0 +1,32 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-sync program</title> + <meta name="Description" content="s6-portable-utils: the s6-sync program" /> + <meta name="Keywords" content="s6-portable-utils command s6-sync sync filesystem" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-sync</tt> program </h1> + +<p> + s6-sync flushes all the dirty system buffers, and blocks until they're +clean. +</p> + +<h2> Interface </h2> + +<pre> + s6-sync +</pre> + +</body> +</html> diff --git a/doc/s6-tail.html b/doc/s6-tail.html new file mode 100644 index 0000000..abf2b76 --- /dev/null +++ b/doc/s6-tail.html @@ -0,0 +1,46 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-tail program</title> + <meta name="Description" content="s6-portable-utils: the s6-tail program" /> + <meta name="Keywords" content="s6-portable-utils command s6-tail tail" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-tail</tt> program </h1> + +<p> + s6-tail prints a file or its stdin after a certain number of bytes or lines. +</p> + +<h2> Interface </h2> + +<pre> + s6-tail [ -n <em>lines</em> | -c <em>chars</em> ] [ <em>file</em> ] +</pre> + +<p> + s6-tail acts as the generic +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/tail.html">tail</a> utility, +except that the <strong>-f</strong> option is not supported. +</p> + +<h2> Posixness </h2> + +<p> + s6-tail <strong>is not</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/tail.html">tail</a> +program; however, if you are never using the <tt>-f</tt> functionality, s6-tail +scrupulously follows the rest of the specification. +</p> + +</body> +</html> diff --git a/doc/s6-test.html b/doc/s6-test.html new file mode 100644 index 0000000..22b6fbd --- /dev/null +++ b/doc/s6-test.html @@ -0,0 +1,53 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-test program</title> + <meta name="Description" content="s6-portable-utils: the s6-test program" /> + <meta name="Keywords" content="s6-portable-utils command s6-test test" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-test</tt> program </h1> + +<p> + s6-test evaluates an expression and indicates the result via its +exit status. +</p> + +<h2> Interface </h2> + +<pre> + s6-test <em>expression...</em> +</pre> + +<p> + s6-test acts as the generic +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html">test</a> utility, +but it diverges from the specification on one point: if an argument starts with a backslash, +this backslash is ignored (and the argument cannot be an operation). This is a simple +disambiguation technique that has unfortunately not been chosen by the standard. +</p> + +<p> + s6-test accepts an arbitrary number of arguments. +</p> + +<h2> Posixness </h2> + +<p> + s6-test <strong>is not</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html">test</a> +program; however, if your arguments never start with a backslash, it exhibits the +exact same behaviour. +</p> + +</body> +</html> diff --git a/doc/s6-touch.html b/doc/s6-touch.html new file mode 100644 index 0000000..ccc40ca --- /dev/null +++ b/doc/s6-touch.html @@ -0,0 +1,45 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-touch program</title> + <meta name="Description" content="s6-portable-utils: the s6-touch program" /> + <meta name="Keywords" content="s6-portable-utils command s6-touch touch" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-touch</tt> program </h1> + +<p> + s6-touch changes the modification and access times of a file, creating it if it does +not exist. +</p> + +<h2> Interface </h2> + +<pre> + s6-touch <em>file...</em> +</pre> + +<p> + s6-touch touches every <em>file</em> in the list by opening them for appending +then closing them. +</p> + +<h2> Posixness </h2> + +<p> + s6-touch <strong>is not</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/touch.html">touch</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-true.html b/doc/s6-true.html new file mode 100644 index 0000000..60ec1c7 --- /dev/null +++ b/doc/s6-true.html @@ -0,0 +1,39 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-true program</title> + <meta name="Description" content="s6-portable-utils: the s6-true program" /> + <meta name="Keywords" content="s6-portable-utils command s6-true" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-true</tt> program </h1> + +<p> + s6-true returns 0. +</p> + +<h2> Interface </h2> + +<pre> + s6-true +</pre> + +<h2> Posixness </h2> + +<p> + s6-true <strong>is</strong> suitable as a Single Unix +<a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/false.html">true</a> +program. +</p> + +</body> +</html> diff --git a/doc/s6-uniquename.html b/doc/s6-uniquename.html new file mode 100644 index 0000000..7315d9b --- /dev/null +++ b/doc/s6-uniquename.html @@ -0,0 +1,45 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-uniquename program</title> + <meta name="Description" content="s6-portable-utils: the s6-uniquename program" /> + <meta name="Keywords" content="s6-portable-utils command s6-uniquename uniquename random" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-uniquename</tt> program </h1> + +<p> + s6-uniquename creates a guaranteed unique file name and prints it to stdout. +</p> + +<h2> Interface </h2> + +<pre> + s6-uniquename [ -n <em>randomlen</em> ] <em>prefix</em> +</pre> + +<ul> + <li> s6-uniquename creates a unique filename starting with <em>prefix</em> +involving a TAI64N timestamp, the machine's FQDN and the process' PID. </li> + <li> It prints it to stdout and exits 0. </li> +</ul> + +<h2> Options </h2> + +<ul> + <li> <tt>-n</tt> <em>randomlen</em> : for added security, also +add a random readable string of <em>randomlen</em> characters to the +created pathname. </li> +</ul> + +</body> +</html> diff --git a/doc/s6-unquote-filter.html b/doc/s6-unquote-filter.html new file mode 100644 index 0000000..7262722 --- /dev/null +++ b/doc/s6-unquote-filter.html @@ -0,0 +1,69 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-unquote-filter program</title> + <meta name="Description" content="s6-portable-utils: the s6-unquote-filter program" /> + <meta name="Keywords" content="s6-portable-utils command s6-unquote-filter unquote filter" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-unquote-filter</tt> program </h1> + +<p> + s6-unquote acts as a filter, reading quoted strings on stdin, +unquoting them and writing the results to stdout. +</p> + +<h2> Interface </h2> + +<pre> + s6-unquote-filter [ -q | -Q | -v | -w ] [ -d <em>delim</em> ] +</pre> + +<ul> + <li> s6-unquote-filter reads lines on stdin. It exits 0 on EOF. </li> + <li> It expects read lines to follow the +syntax of <a href="s6-quote.html">s6-quote</a>'s output strings </li> + <li> Depending on the strictness options, it prints various warning +or error messages to stderr if it cannot properly unquote lines. In +the very strict mode, it exits 100 on the first unquoting error. </li> + <li> If it is successful at unquoting, it prints the resulting +lines to stdout. </li> +</ul> + +<h2> Options </h2> + +<ul> + <li> <tt>-d</tt> <em>delim</em> : a list of characters that +will be considered as delimitors (to start and end the quoted string). +By default, only the double quote is such a character. If <em>delim</em> +is the empty string, s6-unquote-filter interprets <em>string</em> as +non-delimited, only escaped (i.e. for instance the result of some +<tt>s6-quote-filter -u</tt> operation). </li> + <li> <tt>-q</tt> : loose/quiet mode. s6-unquote-filter will +silently accommodate errors. </li> + <li> <tt>-Q</tt> : normal mode. This is the default. s6-unquote-filter +will warn on errors. </li> + <li> <tt>-v</tt> : strict/verbose mode. s6-unquote-filter will +warn loudly on errors, with many details. </li> + <li> <tt>-w</tt> : very strict mode. s6-unquote-filter will complain +and die on the first unquoting error it encounters. </li> +</ul> + +<h2> Notes </h2> + +<ul> + <li> Quoted strings can be produced via the <a href="s6-quote.html">s6-quote</a> or +<a href="s6-quote-filter.html">s6-quote-filter</a> programs. </li> +</ul> + +</body> +</html> diff --git a/doc/s6-unquote.html b/doc/s6-unquote.html new file mode 100644 index 0000000..546082e --- /dev/null +++ b/doc/s6-unquote.html @@ -0,0 +1,58 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-unquote program</title> + <meta name="Description" content="s6-portable-utils: the s6-unquote program" /> + <meta name="Keywords" content="s6-portable-utils command s6-unquote quote" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-unquote</tt> program </h1> + +<p> + s6-unquote unquotes a quoted string and writes it to stdout. +</p> + +<h2> Interface </h2> + +<pre> + s6-unquote [ -n ] [ -d <em>delim</em> ] <em>string</em> +</pre> + +<ul> + <li> s6-unquote unquotes <em>string</em>, which must follow the +syntax of <a href="s6-quote.html">s6-quote</a>'s output strings </li> + <li> It prints various warning or error messages to stderr if it +cannot unquote <em>string</em> properly </li> + <li> If successful, it prints the result to stdout and exits 0 </li> +</ul> + +<h2> Options </h2> + +<ul> + <li> <tt>-n</tt> : do not print a trailing newline. </li> + <li> <tt>-d</tt> <em>delim</em> : a list of characters that +will be considered as delimitors (to start and end the quoted string). +By default, only the double quote is such a character. If <em>delim</em> +is the empty string, s6-unquote interprets <em>string</em> as +non-delimited, only escaped (i.e. the result of some +<tt>s6-quote -u</tt> operation). </li> +</ul> + +<h2> Notes </h2> + +<ul> + <li> Quoted strings can be produced via the <a href="s6-quote.html">s6-quote</a> or +<a href="s6-quote-filter.html">s6-quote-filter</a> programs. </li> +</ul> + +</body> +</html> diff --git a/doc/s6-update-symlinks.html b/doc/s6-update-symlinks.html new file mode 100644 index 0000000..96cc15b --- /dev/null +++ b/doc/s6-update-symlinks.html @@ -0,0 +1,83 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: the s6-update-symlinks program</title> + <meta name="Description" content="s6-portable-utils: the s6-update-symlinks program" /> + <meta name="Keywords" content="s6-portable-utils command s6-update-symlinks update-symlinks symlinks" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> The <tt>s6-update-symlinks</tt> program </h1> + +<p> + <tt>s6-update-symlinks</tt> links the content of several similar directory trees +under a single tree. Its main use is to replace search paths like $PATH +or $MANPATH, by creating a unique access tree based on the source trees. +Name conflicts are solved by giving precedence to the last named directory. +Subdirectories are created exactly as needed ; what can be shared is +shared. +</p> + +<p> +<tt>s6-update-symlinks</tt> is useful when one wants to combine +a logical package system, like Dan Bernstein's +<a href="http://cr.yp.to/slashpackage.html"><tt>/package</tt></a> and +<a href="http://cr.yp.to/slashcommand.html"><tt>/command</tt></a>, with +physical filesystem constraints, like <tt>/</tt>, <tt>/usr</tt> and +<tt>/usr/local</tt> on separate filesystems. +</p> + +<h2> Interface </h2> + +<pre> + s6-update-symlinks <em>d</em> <em>src1</em> <em>src2</em> ... +</pre> + +<ul> + <li> <em>d</em> is the destination directory. It will be created if it doesn't +exist. </li> + <li> <em>src1</em>, <em>src2</em>, ... are the directory containing the files +to be linked.</li> + <li> <em>d</em> and <em>srcn</em> <strong>must</strong> be +<strong>absolute</strong> paths, else s6-update-symlinks refuses to run. Using +relative paths doesn't make sense here, anyway. </li> + <li> If <em>src2</em> is empty, then <em>d</em> becomes a link to <em>src1</em>. </li> + <li> If <em>src1</em> is empty or entirely overridden by <em>src2</em>, then +<em>d</em> becomes a link to <em>src2</em>.</li> + <li> If <em>src1/file</em> exists but not <em>src2/file</em>, then <em>d</em> +becomes a real directory and <em>d/file</em> a link to <em>src1/file</em>. +Then if <em>src2/file2</em> exists, <em>d/file2</em> links to it. </li> + <li> And so on with other <em>src</em> directories, and subdirs. </li> + <li> If <tt>s6-update-symlinks</tt> manages to performs all the requested +tasks, it exits 0. If it encounters a hard error, it exits 111. If it is +unable to resolve a conflict between given sources, it exits 100. </li> +</ul> + +<h2> Examples </h2> + +<ul> + <li> +<tt>s6-update-symlinks /command /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin</tt> +<br> makes all files under <tt>/bin</tt>, ..., <tt>/usr/local/sbin</tt> +available under <tt>/command</tt>. The programs linked are the same as the ones +that would be accessed with PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin". + </li> + <li> +<tt>s6-update-symlinks /package /initrd/package /slash/package /usr/package /usr/local/package</tt> +<br /> builds a <tt>/package</tt> hierarchy with what it finds in the listed +directories. This allows oddities like, for instance, having the daemontools +sources in <tt>/usr/package/admin/daemontools/src</tt>, and the daemontools +binaries in <tt>/initrd/package/admin/daemontools/bin</tt>, but accessing +both through <tt>/package/admin/daemontools/</tt>. </li> +</ul> + +</body> +</html> diff --git a/doc/upgrade.html b/doc/upgrade.html new file mode 100644 index 0000000..978f397 --- /dev/null +++ b/doc/upgrade.html @@ -0,0 +1,32 @@ +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta http-equiv="Content-Language" content="en" /> + <title>s6-portable-utils: how to upgrade</title> + <meta name="Description" content="s6-portable-utils: how to upgrade" /> + <meta name="Keywords" content="s6-portable-utils installation upgrade" /> + <!-- <link rel="stylesheet" type="text/css" href="http://skarnet.org/default.css" /> --> + </head> +<body> + +<p> +<a href="index.html">s6-portable-utils</a><br /> +<a href="http://skarnet.org/software/">Software</a><br /> +<a href="http://skarnet.org/">skarnet.org</a> +</p> + +<h1> How to upgrade s6-portable-utils </h1> + +<h2> to 2.0.0.0 </h2> + +<ul> + <li> The build system has completely changed. It is now a standard +<tt>./configure && make && sudo make install</tt> +build system. See the enclosed INSTALL file for details. </li> + <li> slashpackage is not activated by default. </li> + <li> shared libraries are not used by default. </li> + <li> skalibs dependency bumped to 2.0.0.0 </li> +</ul> + +</body> +</html> |