
\begin{DoxyItemize}
\item infos = Information about the shell plugin is in keys below
\item infos/author = Thomas Waser \href{mailto:thomas.waser@libelektra.org}{\tt thomas.\+waser@libelektra.\+org}
\item infos/licence = B\+SD
\item infos/needs =
\item infos/provides =
\item infos/placements = postgetstorage postcommit postrollback
\item infos/status = nodep configurable preview unfinished
\item infos/description = executes shell commands
\end{DoxyItemize}

The shell plugin executes shell commandos after set, get or error.

The configuration keys


\begin{DoxyItemize}
\item {\ttfamily execute/set}
\item {\ttfamily execute/get}
\item {\ttfamily execute/error}
\end{DoxyItemize}

are used to store the shell commands.

The configuration keys


\begin{DoxyItemize}
\item {\ttfamily execute/set/return}
\item {\ttfamily execute/get/return}
\item {\ttfamily execute/error/return}
\end{DoxyItemize}

can be compared against the return values of the shell commandos.

\subsection*{Example}


\begin{DoxyCode}
# Create temporary file
kdb set system/tests/tempfile $(mktemp)

# Mount plugin and specify plugin configuration
sudo kdb mount shell.ini system/tests/shell ini array= shell execute/set="echo set >> $(kdb get
       system/tests/tempfile)"

cat $(kdb get system/tests/tempfile)
#>

# Execute `set` command
kdb set system/tests/shell
#> Create a new key system/tests/shell with null value

cat $(kdb get system/tests/tempfile)
#> set

# Undo modifications
rm $(kdb get system/tests/tempfile)
kdb rm -r system/tests/shell
sudo kdb umount system/tests/shell
\end{DoxyCode}
 