/qeasyshell

QES is a library that provides an easy to use interface for OS shell. It allows to use pipes and chains inside your c++ code.

Primary LanguageC++OtherNOASSERTION

/*! \mainpage

QES tries to make invoking and communicating with shell scripts easy in Qt/C++.
It is a library that allows for straightforward invocation of shell commands and
joining them into pipes and chains. QES sports both a synchronous and an asynchronous API.

Please take note that this project is quite young, some parts are missing, others note
really tested. Use at your own risk and please consider helping me out
(see \ref copyright "Copyright and contributions" section below for more info).

\section building Compiling QES
QEasyShell requires QtCore library and a working C++ compiler. That's it!

There are 3 standard ways to build QES:
\li just open qeasyshell.pro in QtCreator
\li standard Unix way - run ./configure (check out --help flag first), then make
\li run qmake qeasyshell.pro.

No shadow building required, QES automatically puts all the results in build/.
Code is compatible with both Qt 4 and Qt 5. You can compile statically using
CONFIG+=static and skip building examples using CONFIG+=noexamples passed to qmake.

Building the documentation requires doxygen. Just run doxygen qeasyshell.docconf
in project's root directory and look for the output in doc/html/index.html. You
can also modify the script to produce QCH, PDF, LaTeX output. See doxygen
documentation.

\section warning Warning - platform compatibility
QES is developed and tested under Linux, but should work well on all UNIX-like
OSes, including Mac OS X.

Basic Windows support is also present (see examples/windowsBasic), although it is
not being tested as much as Linux. Also, please note that terminal on Windows is
very poor in features, a lot of things like pipes and more elaborate commands
may not work.

\section usage Examples
For exmamples on how QES can be used in practice, please see the examples folder,
or go to "Modules" section in HTML documentation.

In the meantime, a short example. If you want to run such pipe:
\verbatim
env | grep USER && pwd | wc
\endverbatim

You need to run this in QES:
\verbatim
QesResult *r= QesCommand("env").pipe("grep USER")->chain("pwd")->pipe("wc")->run();
printf(qPrintable(r->toString()), NULL);
\endverbatim

\section links Where to go now
You can jump straight into the code, or into using it in your apps. Else, use the
top bar to read about classes that build up this library.

Some other resources you might be interested in are located in the Related Pages
section. Here are some quick links:
\li \link todo Project's official TODO list \endlink
\li \link license Project's license text \endlink

This documentation is also available online: http://www.sierdzio.com/qeasyshell
Source code is available on:
\li gitorious: https://gitorious.org/qeasyshell
\li github: https://github.com/sierdzio/qeasyshell


\section copyright Copyright and contributions

Copyright (C) 2012 by Tomasz Siekierda.

For licensing, see the \link license LICENSE \endlink file or navigate to it in the documentation.
Please feel free to contribute, report bugs, and suggest changes.
I (sierdzio) can be contacted at sierdzio@gmail.com.
git repositories for this project can be found on gitorious.org and github (see above).
*/