evennia/docs/2.x/api/evennia.server.evennia_launcher.html
Evennia docbuilder action e535f5782a Updated HTML docs.
2023-10-19 20:22:27 +00:00

679 lines
No EOL
53 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>evennia.server.evennia_launcher &#8212; Evennia 2.x documentation</title>
<link rel="stylesheet" href="../_static/nature.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<link rel="shortcut icon" href="../_static/favicon.ico"/>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="evennia.server.initial_setup" href="evennia.server.initial_setup.html" />
<link rel="prev" title="evennia.server.deprecations" href="evennia.server.deprecations.html" />
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.server.initial_setup.html" title="evennia.server.initial_setup"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.server.deprecations.html" title="evennia.server.deprecations"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 2.x</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.server.html" accesskey="U">evennia.server</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.server.evennia_launcher</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo"/>
</a></p>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.server.deprecations.html"
title="previous chapter">evennia.server.deprecations</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.server.initial_setup.html"
title="next chapter">evennia.server.initial_setup</a></p>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.server.evennia_launcher.md.txt"
rel="nofollow">Show Page Source</a></li>
</ul>
</div><h3>Links</h3>
<ul>
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
<li><a href="https://github.com/evennia/evennia">Github</a> </li>
<li><a href="http://games.evennia.com">Game Index</a> </li>
<li>
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
<a href="https://evennia.blogspot.com/">Blog</a>
</li>
</ul>
<h3>Doc Versions</h3>
<ul>
<li><a href="evennia.server.evennia_launcher.html">2.x (main branch)</a></li>
<ul>
<li><a href="../1.3.0/index.html">1.3.0 (v1.3.0 branch)</a></li>
<li><a href="../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.server.evennia_launcher">
<span id="evennia-server-evennia-launcher"></span><h1>evennia.server.evennia_launcher<a class="headerlink" href="#module-evennia.server.evennia_launcher" title="Permalink to this headline"></a></h1>
<p>Evennia launcher program</p>
<p>This is the start point for running Evennia.</p>
<p>Sets the appropriate environmental variables for managing an Evennia game. It will start and connect
to the Portal, through which the Server is also controlled. This pprogram</p>
<p>Run the script with the -h flag to see usage information.</p>
<dl class="py class">
<dt id="evennia.server.evennia_launcher.MsgStatus">
<em class="property">class </em><code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">MsgStatus</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kw</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#MsgStatus"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.MsgStatus" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">twisted.protocols.amp.Command</span></code></p>
<p>Ping between AMP services</p>
<dl class="py attribute">
<dt id="evennia.server.evennia_launcher.MsgStatus.key">
<code class="sig-name descname">key</code><em class="property"> = 'MsgStatus'</em><a class="headerlink" href="#evennia.server.evennia_launcher.MsgStatus.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.evennia_launcher.MsgStatus.arguments">
<code class="sig-name descname">arguments</code><em class="property">: List<span class="p">[</span>Tuple<span class="p">[</span>bytes<span class="p">, </span>twisted.protocols.amp.Argument<span class="p">]</span><span class="p">]</span></em><em class="property"> = [(b'status', &lt;twisted.protocols.amp.String object&gt;)]</em><a class="headerlink" href="#evennia.server.evennia_launcher.MsgStatus.arguments" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.evennia_launcher.MsgStatus.errors">
<code class="sig-name descname">errors</code><em class="property">: Dict<span class="p">[</span>Type<span class="p">[</span>Exception<span class="p">]</span><span class="p">, </span>bytes<span class="p">]</span></em><em class="property"> = {&lt;class 'Exception'&gt;: b'EXCEPTION'}</em><a class="headerlink" href="#evennia.server.evennia_launcher.MsgStatus.errors" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.evennia_launcher.MsgStatus.response">
<code class="sig-name descname">response</code><em class="property">: List<span class="p">[</span>Tuple<span class="p">[</span>bytes<span class="p">, </span>twisted.protocols.amp.Argument<span class="p">]</span><span class="p">]</span></em><em class="property"> = [(b'status', &lt;twisted.protocols.amp.String object&gt;)]</em><a class="headerlink" href="#evennia.server.evennia_launcher.MsgStatus.response" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.evennia_launcher.MsgStatus.allErrors">
<code class="sig-name descname">allErrors</code><em class="property"> = {&lt;class 'Exception'&gt;: b'EXCEPTION'}</em><a class="headerlink" href="#evennia.server.evennia_launcher.MsgStatus.allErrors" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.evennia_launcher.MsgStatus.commandName">
<code class="sig-name descname">commandName</code><em class="property"> = b'MsgStatus'</em><a class="headerlink" href="#evennia.server.evennia_launcher.MsgStatus.commandName" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.evennia_launcher.MsgStatus.reverseErrors">
<code class="sig-name descname">reverseErrors</code><em class="property"> = {b'EXCEPTION': &lt;class 'Exception'&gt;}</em><a class="headerlink" href="#evennia.server.evennia_launcher.MsgStatus.reverseErrors" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.server.evennia_launcher.MsgLauncher2Portal">
<em class="property">class </em><code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">MsgLauncher2Portal</code><span class="sig-paren">(</span><em class="sig-param"><span class="o">**</span><span class="n">kw</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#MsgLauncher2Portal"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.MsgLauncher2Portal" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">twisted.protocols.amp.Command</span></code></p>
<p>Message Launcher -&gt; Portal</p>
<dl class="py attribute">
<dt id="evennia.server.evennia_launcher.MsgLauncher2Portal.key">
<code class="sig-name descname">key</code><em class="property"> = 'MsgLauncher2Portal'</em><a class="headerlink" href="#evennia.server.evennia_launcher.MsgLauncher2Portal.key" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.evennia_launcher.MsgLauncher2Portal.arguments">
<code class="sig-name descname">arguments</code><em class="property">: List<span class="p">[</span>Tuple<span class="p">[</span>bytes<span class="p">, </span>twisted.protocols.amp.Argument<span class="p">]</span><span class="p">]</span></em><em class="property"> = [(b'operation', &lt;twisted.protocols.amp.String object&gt;), (b'arguments', &lt;twisted.protocols.amp.String object&gt;)]</em><a class="headerlink" href="#evennia.server.evennia_launcher.MsgLauncher2Portal.arguments" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.evennia_launcher.MsgLauncher2Portal.errors">
<code class="sig-name descname">errors</code><em class="property">: Dict<span class="p">[</span>Type<span class="p">[</span>Exception<span class="p">]</span><span class="p">, </span>bytes<span class="p">]</span></em><em class="property"> = {&lt;class 'Exception'&gt;: b'EXCEPTION'}</em><a class="headerlink" href="#evennia.server.evennia_launcher.MsgLauncher2Portal.errors" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.evennia_launcher.MsgLauncher2Portal.response">
<code class="sig-name descname">response</code><em class="property">: List<span class="p">[</span>Tuple<span class="p">[</span>bytes<span class="p">, </span>twisted.protocols.amp.Argument<span class="p">]</span><span class="p">]</span></em><em class="property"> = []</em><a class="headerlink" href="#evennia.server.evennia_launcher.MsgLauncher2Portal.response" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.evennia_launcher.MsgLauncher2Portal.allErrors">
<code class="sig-name descname">allErrors</code><em class="property"> = {&lt;class 'Exception'&gt;: b'EXCEPTION'}</em><a class="headerlink" href="#evennia.server.evennia_launcher.MsgLauncher2Portal.allErrors" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.evennia_launcher.MsgLauncher2Portal.commandName">
<code class="sig-name descname">commandName</code><em class="property"> = b'MsgLauncher2Portal'</em><a class="headerlink" href="#evennia.server.evennia_launcher.MsgLauncher2Portal.commandName" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt id="evennia.server.evennia_launcher.MsgLauncher2Portal.reverseErrors">
<code class="sig-name descname">reverseErrors</code><em class="property"> = {b'EXCEPTION': &lt;class 'Exception'&gt;}</em><a class="headerlink" href="#evennia.server.evennia_launcher.MsgLauncher2Portal.reverseErrors" title="Permalink to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
<dl class="py class">
<dt id="evennia.server.evennia_launcher.AMPLauncherProtocol">
<em class="property">class </em><code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">AMPLauncherProtocol</code><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#AMPLauncherProtocol"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.AMPLauncherProtocol" title="Permalink to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">twisted.protocols.amp.AMP</span></code></p>
<p>Defines callbacks to the launcher</p>
<dl class="py method">
<dt id="evennia.server.evennia_launcher.AMPLauncherProtocol.__init__">
<code class="sig-name descname">__init__</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#AMPLauncherProtocol.__init__"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.AMPLauncherProtocol.__init__" title="Permalink to this definition"></a></dt>
<dd><p>Initialize self. See help(type(self)) for accurate signature.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.evennia_launcher.AMPLauncherProtocol.wait_for_status">
<code class="sig-name descname">wait_for_status</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">callback</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#AMPLauncherProtocol.wait_for_status"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.AMPLauncherProtocol.wait_for_status" title="Permalink to this definition"></a></dt>
<dd><p>Register a waiter for a status return.</p>
</dd></dl>
<dl class="py method">
<dt id="evennia.server.evennia_launcher.AMPLauncherProtocol.receive_status_from_portal">
<code class="sig-name descname">receive_status_from_portal</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">status</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#AMPLauncherProtocol.receive_status_from_portal"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.AMPLauncherProtocol.receive_status_from_portal" title="Permalink to this definition"></a></dt>
<dd><p>Get a status signal from portal - fire next queued
callback</p>
</dd></dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.send_instruction">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">send_instruction</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">operation</span></em>, <em class="sig-param"><span class="n">arguments</span></em>, <em class="sig-param"><span class="n">callback</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">errback</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#send_instruction"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.send_instruction" title="Permalink to this definition"></a></dt>
<dd><p>Send instruction and handle the response.</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.query_status">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">query_status</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">callback</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#query_status"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.query_status" title="Permalink to this definition"></a></dt>
<dd><p>Send status ping to portal</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.wait_for_status_reply">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">wait_for_status_reply</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">callback</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#wait_for_status_reply"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.wait_for_status_reply" title="Permalink to this definition"></a></dt>
<dd><p>Wait for an explicit STATUS signal to be sent back from Evennia.</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.wait_for_status">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">wait_for_status</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">portal_running</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">server_running</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">callback</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">errback</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">rate</span><span class="o">=</span><span class="default_value">0.5</span></em>, <em class="sig-param"><span class="n">retries</span><span class="o">=</span><span class="default_value">20</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#wait_for_status"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.wait_for_status" title="Permalink to this definition"></a></dt>
<dd><p>Repeat the status ping until the desired state combination is achieved.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>portal_running</strong> (<em>bool</em><em> or </em><em>None</em>) Desired portal run-state. If None, any state
is accepted.</p></li>
<li><p><strong>server_running</strong> (<em>bool</em><em> or </em><em>None</em>) Desired server run-state. If None, any state
is accepted. The portal must be running.</p></li>
<li><p><strong>callback</strong> (<em>callable</em>) Will be called with portal_state, server_state when
condition is fulfilled.</p></li>
<li><p><strong>errback</strong> (<em>callable</em>) Will be called with portal_state, server_state if the
request is timed out.</p></li>
<li><p><strong>rate</strong> (<em>float</em>) How often to retry.</p></li>
<li><p><strong>retries</strong> (<em>int</em>) How many times to retry before timing out and calling <strong>errback</strong>.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.collectstatic">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">collectstatic</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#collectstatic"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.collectstatic" title="Permalink to this definition"></a></dt>
<dd><p>Run the collectstatic django command</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.start_evennia">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">start_evennia</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">pprofiler</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">sprofiler</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#start_evennia"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.start_evennia" title="Permalink to this definition"></a></dt>
<dd><p>This will start Evennia anew by launching the Evennia Portal (which in turn
will start the Server)</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.reload_evennia">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">reload_evennia</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">sprofiler</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">reset</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#reload_evennia"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.reload_evennia" title="Permalink to this definition"></a></dt>
<dd><p>This will instruct the Portal to reboot the Server component. We
do this manually by telling the server to shutdown (in reload mode)
and wait for the portal to report back, at which point we start the
server again. This way we control the process exactly.</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.stop_evennia">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">stop_evennia</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#stop_evennia"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.stop_evennia" title="Permalink to this definition"></a></dt>
<dd><p>This instructs the Portal to stop the Server and then itself.</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.reboot_evennia">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">reboot_evennia</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">pprofiler</span><span class="o">=</span><span class="default_value">False</span></em>, <em class="sig-param"><span class="n">sprofiler</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#reboot_evennia"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.reboot_evennia" title="Permalink to this definition"></a></dt>
<dd><p>This is essentially an evennia stop &amp;&amp; evennia start except we make sure
the system has successfully shut down before starting it again.</p>
<p>If evennia was not running, start it.</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.start_only_server">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">start_only_server</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#start_only_server"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.start_only_server" title="Permalink to this definition"></a></dt>
<dd><p>Tell portal to start server (debug)</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.start_server_interactive">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">start_server_interactive</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#start_server_interactive"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.start_server_interactive" title="Permalink to this definition"></a></dt>
<dd><p>Start the Server under control of the launcher process (foreground)</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.start_portal_interactive">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">start_portal_interactive</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#start_portal_interactive"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.start_portal_interactive" title="Permalink to this definition"></a></dt>
<dd><p>Start the Portal under control of the launcher process (foreground)</p>
<p class="rubric">Notes</p>
<p>In a normal start, the launcher waits for the Portal to start, then
tells it to start the Server. Since we cant do this here, we instead
start the Server first and then starts the Portal - the Server will
auto-reconnect to the Portal. To allow the Server to be reloaded, this
relies on a fixed server server-cmdline stored as a fallback on the
portal application in evennia/server/portal/portal.py.</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.stop_server_only">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">stop_server_only</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">when_stopped</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">interactive</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#stop_server_only"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.stop_server_only" title="Permalink to this definition"></a></dt>
<dd><p>Only stop the Server-component of Evennia (this is not useful except for debug)</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>when_stopped</strong> (<em>callable</em>) This will be called with no arguments when Server has stopped (or
if it had already stopped when this is called).</p></li>
<li><p><strong>interactive</strong> (<em>bool</em><em>, </em><em>optional</em>) Set if this is called as part of the interactive reload
mechanism.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.query_info">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">query_info</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#query_info"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.query_info" title="Permalink to this definition"></a></dt>
<dd><p>Display the info strings from the running Evennia</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.tail_log_files">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">tail_log_files</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">filename1</span></em>, <em class="sig-param"><span class="n">filename2</span></em>, <em class="sig-param"><span class="n">start_lines1</span><span class="o">=</span><span class="default_value">20</span></em>, <em class="sig-param"><span class="n">start_lines2</span><span class="o">=</span><span class="default_value">20</span></em>, <em class="sig-param"><span class="n">rate</span><span class="o">=</span><span class="default_value">1</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#tail_log_files"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.tail_log_files" title="Permalink to this definition"></a></dt>
<dd><p>Tail two logfiles interactively, combining their output to stdout</p>
<p>When first starting, this will display the tail of the log files. After
that it will poll the log files repeatedly and display changes.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>filename1</strong> (<em>str</em>) Path to first log file.</p></li>
<li><p><strong>filename2</strong> (<em>str</em>) Path to second log file.</p></li>
<li><p><strong>start_lines1</strong> (<em>int</em>) How many lines to show from existing first log.</p></li>
<li><p><strong>start_lines2</strong> (<em>int</em>) How many lines to show from existing second log.</p></li>
<li><p><strong>rate</strong> (<em>int</em><em>, </em><em>optional</em>) How often to poll the log file.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.evennia_version">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">evennia_version</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#evennia_version"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.evennia_version" title="Permalink to this definition"></a></dt>
<dd><p>Get the Evennia version info from the main package.</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.check_main_evennia_dependencies">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">check_main_evennia_dependencies</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#check_main_evennia_dependencies"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.check_main_evennia_dependencies" title="Permalink to this definition"></a></dt>
<dd><p>Checks and imports the Evennia dependencies. This must be done
already before the paths are set up.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>not_error (bool)</em> True if no dependency error was found.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.set_gamedir">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">set_gamedir</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">path</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#set_gamedir"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.set_gamedir" title="Permalink to this definition"></a></dt>
<dd><p>Set GAMEDIR based on path, by figuring out where the setting file
is inside the directory tree. This allows for running the launcher
from elsewhere than the top of the gamedir folder.</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.create_secret_key">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">create_secret_key</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#create_secret_key"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.create_secret_key" title="Permalink to this definition"></a></dt>
<dd><p>Randomly create the secret key for the settings file</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.create_settings_file">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">create_settings_file</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">init</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">secret_settings</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#create_settings_file"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.create_settings_file" title="Permalink to this definition"></a></dt>
<dd><p>Uses the template settings file to build a working settings file.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>init</strong> (<em>bool</em>) This is part of the normal evennia init
operation. If false, this function will copy a fresh
template file in (asking if it already exists).</p></li>
<li><p><strong>secret_settings</strong> (<em>bool</em><em>, </em><em>optional</em>) If False, create settings.py, otherwise
create the secret_settings.py file.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.create_game_directory">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">create_game_directory</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">dirname</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#create_game_directory"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.create_game_directory" title="Permalink to this definition"></a></dt>
<dd><p>Initialize a new game directory named dirname
at the current path. This means copying the
template directory from evennias root.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>dirname</strong> (<em>str</em>) The directory name to create.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.create_superuser">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">create_superuser</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#create_superuser"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.create_superuser" title="Permalink to this definition"></a></dt>
<dd><p>Create the superuser account</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.check_database">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">check_database</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">always_return</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#check_database"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.check_database" title="Permalink to this definition"></a></dt>
<dd><p>Check so the database exists.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>always_return</strong> (<em>bool</em><em>, </em><em>optional</em>) If set, will always return True/False
also on critical errors. No output will be printed.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>exists (bool)</em> <strong>True</strong> if the database exists, otherwise <strong>False</strong>.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.getenv">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">getenv</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#getenv"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.getenv" title="Permalink to this definition"></a></dt>
<dd><p>Get current environment and add PYTHONPATH.</p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p><em>env (dict)</em> Environment global dict.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.get_pid">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">get_pid</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">pidfile</span></em>, <em class="sig-param"><span class="n">default</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#get_pid"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.get_pid" title="Permalink to this definition"></a></dt>
<dd><p>Get the PID (Process ID) by trying to access an PID file.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>pidfile</strong> (<em>str</em>) The path of the pid file.</p></li>
<li><p><strong>default</strong> (<em>int</em><em>, </em><em>optional</em>) What to return if file does not exist.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>pid (str)</em> The process id or <strong>default</strong>.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.del_pid">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">del_pid</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">pidfile</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#del_pid"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.del_pid" title="Permalink to this definition"></a></dt>
<dd><p>The pidfile should normally be removed after a process has
finished, but when sending certain signals they remain, so we need
to clean them manually.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>pidfile</strong> (<em>str</em>) The path of the pid file.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.kill">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">kill</code><span class="sig-paren">(</span><em class="sig-param">pidfile</em>, <em class="sig-param">component='Server'</em>, <em class="sig-param">callback=None</em>, <em class="sig-param">errback=None</em>, <em class="sig-param">killsignal=&lt;Signals.SIGINT: 2&gt;</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#kill"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.kill" title="Permalink to this definition"></a></dt>
<dd><p>Send a kill signal to a process based on PID. A customized
success/error message will be returned. If clean=True, the system
will attempt to manually remove the pid file. On Windows, no arguments
are useful since Windows has no ability to direct signals except to all
children of a console.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>pidfile</strong> (<em>str</em>) The path of the pidfile to get the PID from. This is ignored
on Windows.</p></li>
<li><p><strong>component</strong> (<em>str</em><em>, </em><em>optional</em>) Usually one of Server or Portal. This is
ignored on Windows.</p></li>
<li><p><strong>errback</strong> (<em>callable</em><em>, </em><em>optional</em>) Called if signal failed to send. This
is ignored on Windows.</p></li>
<li><p><strong>callback</strong> (<em>callable</em><em>, </em><em>optional</em>) Called if kill signal was sent successfully.
This is ignored on Windows.</p></li>
<li><p><strong>killsignal</strong> (<em>int</em><em>, </em><em>optional</em>) Signal identifier for signal to send. This is
ignored on Windows.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.show_version_info">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">show_version_info</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">about</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#show_version_info"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.show_version_info" title="Permalink to this definition"></a></dt>
<dd><p>Display version info.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>about</strong> (<em>bool</em>) Include ABOUT info as well as version numbers.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>version_info (str)</em> A complete version info string.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.error_check_python_modules">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">error_check_python_modules</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">show_warnings</span><span class="o">=</span><span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#error_check_python_modules"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.error_check_python_modules" title="Permalink to this definition"></a></dt>
<dd><p>Import settings modules in settings. This will raise exceptions on
pure python-syntax issues which are hard to catch gracefully with
exceptions in the engine (since they are formatting errors in the
python source files themselves). Best they fail already here
before we get any further.</p>
<dl class="field-list simple">
<dt class="field-odd">Keyword Arguments</dt>
<dd class="field-odd"><p><strong>show_warnings</strong> (<em>bool</em>) If non-fatal warning messages should be shown.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.init_game_directory">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">init_game_directory</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">path</span></em>, <em class="sig-param"><span class="n">check_db</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">need_gamedir</span><span class="o">=</span><span class="default_value">True</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#init_game_directory"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.init_game_directory" title="Permalink to this definition"></a></dt>
<dd><p>Try to analyze the given path to find settings.py - this defines
the game directory and also sets PYTHONPATH as well as the django
path.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>path</strong> (<em>str</em>) Path to new game directory, including its name.</p></li>
<li><p><strong>check_db</strong> (<em>bool</em><em>, </em><em>optional</em>) Check if the databae exists.</p></li>
<li><p><strong>need_gamedir</strong> (<em>bool</em><em>, </em><em>optional</em>) set to False if Evennia doesnt require to
be run in a valid game directory.</p></li>
</ul>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.run_dummyrunner">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">run_dummyrunner</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">number_of_dummies</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#run_dummyrunner"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.run_dummyrunner" title="Permalink to this definition"></a></dt>
<dd><p>Start an instance of the dummyrunner</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>number_of_dummies</strong> (<em>int</em>) The number of dummy accounts to start.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The dummy accounts behavior can be customized by adding a
<strong>dummyrunner_settings.py</strong> config file in the games conf/
directory.</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.run_connect_wizard">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">run_connect_wizard</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#run_connect_wizard"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.run_connect_wizard" title="Permalink to this definition"></a></dt>
<dd><p>Run the linking wizard, for adding new external connections.</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.list_settings">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">list_settings</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">keys</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#list_settings"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.list_settings" title="Permalink to this definition"></a></dt>
<dd><p>Display the server settings. We only display the Evennia specific
settings here. The result will be printed to the terminal.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>keys</strong> (<em>str</em><em> or </em><em>list</em>) Setting key or keys to inspect.</p>
</dd>
</dl>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.run_custom_commands">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">run_custom_commands</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">option</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">args</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#run_custom_commands"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.run_custom_commands" title="Permalink to this definition"></a></dt>
<dd><p>Inject a custom option into the evennia launcher command chain.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>option</strong> (<em>str</em>) Incoming option - the first argument after <strong>evennia</strong> on
the command line.</p></li>
<li><p><strong>*args</strong> All args will passed to a found callable.__dict__</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p><em>bool</em> If a custom command was found and handled the option.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>Provide new commands in settings with</p>
<blockquote>
<div><p>CUSTOM_EVENNIA_LAUNCHER_COMMANDS = {“mycmd”: “path.to.callable”, …}</p>
</div></blockquote>
<p>The callable will be passed any <strong>*args</strong> given on the command line and is expected to
handle/validate the input correctly. Use like any other evennia command option on
in the terminal/console, for example:</p>
<blockquote>
<div><p>evennia mycmd foo bar</p>
</div></blockquote>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.run_menu">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">run_menu</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#run_menu"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.run_menu" title="Permalink to this definition"></a></dt>
<dd><p>This launches an interactive menu.</p>
</dd></dl>
<dl class="py function">
<dt id="evennia.server.evennia_launcher.main">
<code class="sig-prename descclassname">evennia.server.evennia_launcher.</code><code class="sig-name descname">main</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/server/evennia_launcher.html#main"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.server.evennia_launcher.main" title="Permalink to this definition"></a></dt>
<dd><p>Run the evennia launcher main program.</p>
</dd></dl>
</section>
</div>
</div>
</div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="evennia.server.initial_setup.html" title="evennia.server.initial_setup"
>next</a> |</li>
<li class="right" >
<a href="evennia.server.deprecations.html" title="evennia.server.deprecations"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 2.x</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.server.html" >evennia.server</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.server.evennia_launcher</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2023, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
</div>
</body>
</html>