ALPHABET-MAIN(1)                                 ALPHABET-MAIN(1)

          main - operators on the basic Alphabet types

          load alphabet
          type /string
          type /fd
          type /wfd
          type /status
          type /cmd

          Main refers to operators defined Alphabet's (see sh-alphabet(1)) root typeset (/).

          In the following description of the modules provided, an
          entry such as:

          echo string -> fd

          describes a verb echo, which takes one argument of type
          string, and the result of which is of type fd.  If the type
          is not one of those described above, it should be taken to
          be of type string.

          All types and modules names are taken to be relative to the
          typeset root, /.

          Modules defined within main include:

          auth [-v] [-k keyfile] [-C alg] wfd -> wfd
                    Auth authenticates to a server connected to its
                    argument wfd, and optionally adds encryption to
                    the stream.  If keyfile is given, it gives the
                    filename of a key file (by default
                    /usr/user/keyring/default is used).  If alg is
                    given, it specifies the encryption/hash algorithm
                    to push (e.g.  rc4_256/md5).  If the -v flag is
                    given, auth will print the name of the authenti-
                    cated user to its diagnostic stream.

          cat [fd...] -> fd
                    Cat reads all the data from each fd in sequence
                    and writes it to its resulting fd.

          create fd f -> status
                    Create creates a file named f and writes to it all
                    the data from fd. Status will be empty if the
                    writing has completed successfully.

     ALPHABET-MAIN(1)                                 ALPHABET-MAIN(1)

          dial addr -> wfd
                    Dial makes a connection to network address addr
                    (see dial(2) for the address format), and returns
                    the resulting connection.

          echo [-n] string -> fd
                    Echo writes its argument string to its resulting
                    fd. If the -n option is given, no newline will be

          export dir -> wfd
                    Export exports the namespace rooted at dir and
                    serves it as a styx service on wfd.

          fd n -> wfd
                    Fd takes file descriptor n, and makes it available
                    for reading and/or writing as wfd.

          filter fd cmd arg... -> fd
                    Filter starts the shell command cmd, and pipes
                    through this all the data from its argument fd to
                    its resulting fd. The provided arguments are
                    accessible in the shell command as $*.

          mount [-abc] [-x aname] wfd dir -> status
                    Mount mounts a connection to a styx server (wfd)
                    onto dir. The meaning of the -a, -b, and -c flags
                    is the same as for mount(1). Aname, if given,
                    gives the attach name that will be passed with the
                    mount request.

          parse string -> cmd
                    Parse parses string as a shell command or alphabet
                    expression, and returns the result.

          print fd n -> status
                    Print writes all the data from fd to file descrip-
                    tor n.

          pretty cmd -> string
                    Pretty returns a string representation of the
                    alphabet expression cmd which is intended to be
                    easier to read.

          read f -> fd
                    Read reads the data from file f and writes it to
                    its resulting fd.

          rewrite [-d dsttype] cmd cmd -> cmd
                    Rewrite rewrites an alphabet expression to its
                    canonical form, applying all auto-conversions,
                    expanding all definitions, expanding pipe notation

     ALPHABET-MAIN(1)                                 ALPHABET-MAIN(1)

                    and checking that all types are compatible.  The
                    first cmd argument gives the alphabet expression
                    to be rewritten; the second cmd should contain
                    shell commands acceptable to sh-alphabet(1),
                    declaring all the modules used in the expression.
                    If dsttype is given, it specifies the return type
                    of the final expression; auto-conversions will be
                    applied to attain this type, if possible.

          unparse cmd -> string
                    Unparse is the inverse operation to parse: it con-
                    verts cmd to a string, and returns the result.

          2fd wfd -> fd
                    2fd converts the read-write file wfd to the read-
                    only fd.


          sh-alphabet(1), alphabet-main(2), sh(1)