Sophie

Sophie

distrib > Mageia > 7 > i586 > media > core-release > by-pkgid > 016232f1d9a3f7bee85855d35a2bca58 > files > 209

elixir-doc-1.7.2-1.mga7.noarch.rpm

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="generator" content="ExDoc v0.19.1">
    <title>Mix.Task – Mix v1.7.2</title>
    <link rel="stylesheet" href="dist/app-240d7fc7e5.css" />
      <link rel="canonical" href="https://hexdocs.pm/mix/v1.7/Mix.Task.html" />
    <script src="dist/sidebar_items-0c0044e6e4.js"></script>
    
  </head>
  <body data-type="modules">
    <script>try { if(localStorage.getItem('night-mode')) document.body.className += ' night-mode'; } catch (e) { }</script>
    <div class="main">
<button class="sidebar-button sidebar-toggle">
  <span class="icon-menu" aria-hidden="true"></span>
  <span class="sr-only">Toggle Sidebar</span>
</button>
<button class="sidebar-button night-mode-toggle">
  <span class="icon-theme" aria-hidden="true"></span>
  <span class="sr-only">Toggle Theme</span>
</button>
<section class="sidebar">

  <a href="http://elixir-lang.org/docs.html" class="sidebar-projectLink">
    <div class="sidebar-projectDetails">
      <h1 class="sidebar-projectName">
Mix      </h1>
      <h2 class="sidebar-projectVersion">
        v1.7.2
      </h2>
    </div>
      <img src="assets/logo.png" alt="Mix" class="sidebar-projectImage">
  </a>

  <form class="sidebar-search" action="search.html">
    <button type="submit" class="search-button">
      <span class="icon-search" aria-hidden="true"></span>
    </button>
    <input name="q" type="text" id="search-list" class="search-input" placeholder="Search" aria-label="Search" autocomplete="off" />
  </form>

  <ul class="sidebar-listNav">
    <li><a id="extras-list" href="#full-list">Pages</a></li>

      <li><a id="modules-list" href="#full-list">Modules</a></li>

      <li><a id="exceptions-list" href="#full-list">Exceptions</a></li>

      <li><a id="tasks-list" href="#full-list">Mix Tasks</a></li>
  </ul>
  <div class="gradient"></div>
  <ul id="full-list" class="sidebar-fullList"></ul>
</section>

<section class="content">
  <div class="content-outer">
    <div id="content" class="content-inner">


      <h1>
        <small class="visible-xs">Mix v1.7.2</small>
Mix.Task <small>behaviour</small>        
          <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L1" title="View Source" class="view-source" rel="help">
            <span class="icon-code" aria-hidden="true"></span>
            <span class="sr-only">View Source</span>
          </a>
      </h1>


        <section id="moduledoc">
<p>A simple module that provides conveniences for creating,
loading and manipulating tasks.</p>
<p>A Mix task can be defined by simply using <a href="Mix.Task.html#content"><code class="inline">Mix.Task</code></a>
in a module starting with <code class="inline">Mix.Tasks.</code> and defining
the <a href="#run/1"><code class="inline">run/1</code></a> function:</p>
<pre><code class="nohighlight makeup elixir"><span class="kd">defmodule</span><span class="w"> </span><span class="nc">Mix.Tasks.Echo</span><span class="w"> </span><span class="k" data-group-id="4879143963-1">do</span><span class="w">
  </span><span class="kn">use</span><span class="w"> </span><span class="nc">Mix.Task</span><span class="w">

  </span><span class="kd">def</span><span class="w"> </span><span class="nf">run</span><span class="p" data-group-id="4879143963-2">(</span><span class="n">args</span><span class="p" data-group-id="4879143963-2">)</span><span class="w"> </span><span class="k" data-group-id="4879143963-3">do</span><span class="w">
    </span><span class="nc">Mix</span><span class="o">.</span><span class="n">shell</span><span class="o">.</span><span class="n">info</span><span class="w"> </span><span class="nc">Enum</span><span class="o">.</span><span class="n">join</span><span class="p" data-group-id="4879143963-4">(</span><span class="n">args</span><span class="p">,</span><span class="w"> </span><span class="s">&quot; &quot;</span><span class="p" data-group-id="4879143963-4">)</span><span class="w">
  </span><span class="k" data-group-id="4879143963-3">end</span><span class="w">
</span><span class="k" data-group-id="4879143963-1">end</span></code></pre>
<p>The <a href="#run/1"><code class="inline">run/1</code></a> function will receive a list of all arguments passed
to the command line.</p>
<h2 id="module-attributes" class="section-heading">
  <a href="#module-attributes" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Attributes
</h2>

<p>There are a few attributes available in Mix tasks to
configure them in Mix:</p>
<ul>
<li><code class="inline">@shortdoc</code>  - makes the task public with a short description that appears on <code class="inline">mix help</code>
</li>
<li><code class="inline">@recursive</code> - runs the task recursively in umbrella projects
</li>
<li><code class="inline">@preferred_cli_env</code> - recommends environment to run task. It is used in absence of
a Mix project recommendation, or explicit <code class="inline">MIX_ENV</code>, and it only works for tasks
in the current project. <code class="inline">@preferred_cli_env</code> is not loaded from dependencies as
we need to know the environment before dependencies are loaded.
</li>
</ul>
<h2 id="module-documentation" class="section-heading">
  <a href="#module-documentation" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Documentation
</h2>

<p>Users can read the documentation for public Mix tasks by running <code class="inline">mix help my_task</code>.
The documentation that will be shown is the <code class="inline">@moduledoc</code> of the task’s module.</p>
        </section>

        <section id="summary" class="details-list">
          <h1 class="section-heading">
            <a class="hover-link" href="#summary">
              <span class="icon-link" aria-hidden="true"></span>
              <span class="sr-only">Link to this section</span>
            </a>
            Summary
          </h1>
  <div class="summary-types summary">
    <h2>
      <a href="#types">Types</a>
    </h2>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#t:task_module/0">task_module()</a>
  </div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#t:task_name/0">task_name()</a>
  </div>
</div>
  </div>
          
  <div class="summary-functions summary">
    <h2>
      <a href="#functions">Functions</a>
    </h2>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#alias?/1">alias?(task)</a>
  </div>
    <div class="summary-synopsis"><p>Checks if an alias called <code class="inline">task</code> exists</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#all_modules/0">all_modules()</a>
  </div>
    <div class="summary-synopsis"><p>Returns all loaded task modules</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#clear/0">clear()</a>
  </div>
    <div class="summary-synopsis"><p>Clears all invoked tasks, allowing them to be reinvoked</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#get!/1">get!(task)</a>
  </div>
    <div class="summary-synopsis"><p>Receives a task name and retrieves the task module</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#get/1">get(task)</a>
  </div>
    <div class="summary-synopsis"><p>Receives a task name and returns the task module if found</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#load_all/0">load_all()</a>
  </div>
    <div class="summary-synopsis"><p>Loads all tasks in all code paths</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#load_tasks/1">load_tasks(dirs)</a>
  </div>
    <div class="summary-synopsis"><p>Loads all tasks in the given <code class="inline">paths</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#moduledoc/1">moduledoc(module)</a>
  </div>
    <div class="summary-synopsis"><p>Gets the moduledoc for the given task <code class="inline">module</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#preferred_cli_env/1">preferred_cli_env(task)</a>
  </div>
    <div class="summary-synopsis"><p>Gets preferred CLI environment for the task</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#recursive/1">recursive(module)</a>
  </div>
    <div class="summary-synopsis"><p>Checks if the task should be run recursively for all sub-apps in
umbrella projects</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#reenable/1">reenable(task)</a>
  </div>
    <div class="summary-synopsis"><p>Reenables a given task so it can be executed again down the stack</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#rerun/2">rerun(task, args \\ [])</a>
  </div>
    <div class="summary-synopsis"><p>Reruns <code class="inline">task</code> with the given arguments</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#run/2">run(task, args \\ [])</a>
  </div>
    <div class="summary-synopsis"><p>Runs a <code class="inline">task</code> with the given <code class="inline">args</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#shortdoc/1">shortdoc(module)</a>
  </div>
    <div class="summary-synopsis"><p>Gets the shortdoc for the given task <code class="inline">module</code></p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#task?/1">task?(module)</a>
  </div>
    <div class="summary-synopsis"><p>Returns <code class="inline">true</code> if given module is a task</p>
</div>
</div>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#task_name/1">task_name(module)</a>
  </div>
    <div class="summary-synopsis"><p>Returns the task name for the given <code class="inline">module</code></p>
</div>
</div>
  </div>
            <div class="summary-callbacks summary">
    <h2>
      <a href="#callbacks">Callbacks</a>
    </h2>
<div class="summary-row">
  <div class="summary-signature">
    <a href="#c:run/1">run(command_line_args)</a>
  </div>
    <div class="summary-synopsis"><p>A task needs to implement <code class="inline">run</code> which receives
a list of command line args</p>
</div>
</div>
  </div>

        </section>

        <section id="types" class="details-list">
          <h1 class="section-heading">
            <a class="hover-link" href="#types">
              <span class="icon-link" aria-hidden="true"></span>
              <span class="sr-only">Link to this section</span>
            </a>
            Types
          </h1>
          <div class="types-list">
<div class="detail" id="t:task_module/0">
    <div class="detail-header">
    <a href="#t:task_module/0" class="detail-link" title="Link to this type">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this type</span>
    </a>
    <span class="signature">task_module()</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L40" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>task_module() :: <a href="https://hexdocs.pm/elixir/typespecs.html#basic-types">atom</a>()</pre>
      </div>
  </div>
  <section class="docstring">
  </section>
</div>
<div class="detail" id="t:task_name/0">
    <div class="detail-header">
    <a href="#t:task_name/0" class="detail-link" title="Link to this type">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this type</span>
    </a>
    <span class="signature">task_name()</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L39" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>task_name() :: <a href="https://hexdocs.pm/elixir/String.html#t:t/0">String.t</a>() | <a href="https://hexdocs.pm/elixir/typespecs.html#basic-types">atom</a>()</pre>
      </div>
  </div>
  <section class="docstring">
  </section>
</div>
          </div>
        </section>


        <section id="functions" class="details-list">
          <h1 class="section-heading">
            <a class="hover-link" href="#functions">
              <span class="icon-link" aria-hidden="true"></span>
              <span class="sr-only">Link to this section</span>
            </a>
            Functions
          </h1>
<div class="detail" id="alias?/1">
    <div class="detail-header">
    <a href="#alias?/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">alias?(task)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L199" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>alias?(<a href="#t:task_name/0">task_name</a>()) :: <a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">boolean</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Checks if an alias called <code class="inline">task</code> exists.</p>
<p>For more information about task aliasing, take a look at the “Aliasing”
section in the docs for <a href="Mix.html"><code class="inline">Mix</code></a>.</p>
  </section>
</div>
<div class="detail" id="all_modules/0">
    <div class="detail-header">
    <a href="#all_modules/0" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">all_modules()</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L116" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>all_modules() :: [<a href="#t:task_module/0">task_module</a>()]</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns all loaded task modules.</p>
<p>Modules that are not yet loaded won’t show up.
Check <a href="#load_all/0"><code class="inline">load_all/0</code></a> if you want to preload all tasks.</p>
  </section>
</div>
<div class="detail" id="clear/0">
    <div class="detail-header">
    <a href="#clear/0" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">clear()</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L372" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>clear() :: :ok</pre>
      </div>
  </div>
  <section class="docstring">
<p>Clears all invoked tasks, allowing them to be reinvoked.</p>
<p>This operation is not recursive.</p>
  </section>
</div>
<div class="detail" id="get!/1">
    <div class="detail-header">
    <a href="#get!/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">get!(task)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L227" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>get!(<a href="#t:task_name/0">task_name</a>()) :: <a href="#t:task_module/0">task_module</a>() | <a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">no_return</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Receives a task name and retrieves the task module.</p>
<h2 id="get!/1-exceptions" class="section-heading">
  <a href="#get!/1-exceptions" class="hover-link"><span class="icon-link" aria-hidden="true"></span></a>
  Exceptions
</h2>

<ul>
<li><a href="Mix.NoTaskError.html"><code class="inline">Mix.NoTaskError</code></a>      - raised if the task could not be found
</li>
<li><a href="Mix.InvalidTaskError.html"><code class="inline">Mix.InvalidTaskError</code></a> - raised if the task is not a valid <a href="Mix.Task.html#content"><code class="inline">Mix.Task</code></a>
</li>
</ul>
  </section>
</div>
<div class="detail" id="get/1">
    <div class="detail-header">
    <a href="#get/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">get(task)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L210" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>get(<a href="#t:task_name/0">task_name</a>()) :: <a href="#t:task_module/0">task_module</a>() | nil</pre>
      </div>
  </div>
  <section class="docstring">
<p>Receives a task name and returns the task module if found.</p>
<p>Otherwise returns <code class="inline">nil</code> in case the module
exists, but it isn’t a task or cannot be found.</p>
  </section>
</div>
<div class="detail" id="load_all/0">
    <div class="detail-header">
    <a href="#load_all/0" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">load_all()</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L69" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>load_all() :: [<a href="#t:task_module/0">task_module</a>()]</pre>
      </div>
  </div>
  <section class="docstring">
<p>Loads all tasks in all code paths.</p>
  </section>
</div>
<div class="detail" id="load_tasks/1">
    <div class="detail-header">
    <a href="#load_tasks/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">load_tasks(dirs)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L75" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>load_tasks([<a href="https://hexdocs.pm/elixir/List.Chars.html#t:t/0">List.Chars.t</a>()]) :: [<a href="#t:task_module/0">task_module</a>()]</pre>
      </div>
  </div>
  <section class="docstring">
<p>Loads all tasks in the given <code class="inline">paths</code>.</p>
  </section>
</div>
<div class="detail" id="moduledoc/1">
    <div class="detail-header">
    <a href="#moduledoc/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">moduledoc(module)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L126" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>moduledoc(<a href="#t:task_module/0">task_module</a>()) :: <a href="https://hexdocs.pm/elixir/String.html#t:t/0">String.t</a>() | nil | false</pre>
      </div>
  </div>
  <section class="docstring">
<p>Gets the moduledoc for the given task <code class="inline">module</code>.</p>
<p>Returns the moduledoc or <code class="inline">nil</code>.</p>
  </section>
</div>
<div class="detail" id="preferred_cli_env/1">
    <div class="detail-header">
    <a href="#preferred_cli_env/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">preferred_cli_env(task)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L167" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>preferred_cli_env(<a href="#t:task_name/0">task_name</a>()) :: <a href="https://hexdocs.pm/elixir/typespecs.html#basic-types">atom</a>() | nil</pre>
      </div>
  </div>
  <section class="docstring">
<p>Gets preferred CLI environment for the task.</p>
<p>Returns environment (for example, <code class="inline">:test</code>, or <code class="inline">:prod</code>), or <code class="inline">nil</code>.</p>
  </section>
</div>
<div class="detail" id="recursive/1">
    <div class="detail-header">
    <a href="#recursive/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">recursive(module)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L154" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>recursive(<a href="#t:task_module/0">task_module</a>()) :: <a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">boolean</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Checks if the task should be run recursively for all sub-apps in
umbrella projects.</p>
<p>Returns <code class="inline">true</code> or <code class="inline">false</code>.</p>
  </section>
</div>
<div class="detail" id="reenable/1">
    <div class="detail-header">
    <a href="#reenable/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">reenable(task)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L386" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>reenable(<a href="#t:task_name/0">task_name</a>()) :: :ok</pre>
      </div>
  </div>
  <section class="docstring">
<p>Reenables a given task so it can be executed again down the stack.</p>
<p>Both alias and the regular stack are reenabled when this function
is called.</p>
<p>If an umbrella project reenables a task, it is reenabled for all
child projects.</p>
  </section>
</div>
<div class="detail" id="rerun/2">
  
    <span id="rerun/1"></span>
  <div class="detail-header">
    <a href="#rerun/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">rerun(task, args \\ [])</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L427" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>rerun(<a href="#t:task_name/0">task_name</a>(), [<a href="https://hexdocs.pm/elixir/typespecs.html#basic-types">any</a>()]) :: <a href="https://hexdocs.pm/elixir/typespecs.html#basic-types">any</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Reruns <code class="inline">task</code> with the given arguments.</p>
<p>This function reruns the given task; to do that, it first re-enables the task
and then runs it as normal.</p>
  </section>
</div>
<div class="detail" id="run/2">
  
    <span id="run/1"></span>
  <div class="detail-header">
    <a href="#run/2" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">run(task, args \\ [])</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L273" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>run(<a href="#t:task_name/0">task_name</a>(), [<a href="https://hexdocs.pm/elixir/typespecs.html#basic-types">any</a>()]) :: <a href="https://hexdocs.pm/elixir/typespecs.html#basic-types">any</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Runs a <code class="inline">task</code> with the given <code class="inline">args</code>.</p>
<p>If the task was not yet invoked, it runs the task and
returns the result.</p>
<p>If there is an alias with the same name, the alias
will be invoked instead of the original task.</p>
<p>If the task or alias were already invoked, it does not
run them again and simply aborts with <code class="inline">:noop</code>.</p>
<p>It may raise an exception if an alias or a task can’t
be found or the task is invalid. Check <a href="#get!/1"><code class="inline">get!/1</code></a> for more
information.</p>
  </section>
</div>
<div class="detail" id="shortdoc/1">
    <div class="detail-header">
    <a href="#shortdoc/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">shortdoc(module)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L140" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>shortdoc(<a href="#t:task_module/0">task_module</a>()) :: <a href="https://hexdocs.pm/elixir/String.html#t:t/0">String.t</a>() | nil</pre>
      </div>
  </div>
  <section class="docstring">
<p>Gets the shortdoc for the given task <code class="inline">module</code>.</p>
<p>Returns the shortdoc or <code class="inline">nil</code>.</p>
  </section>
</div>
<div class="detail" id="task?/1">
    <div class="detail-header">
    <a href="#task?/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">task?(module)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L436" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>task?(<a href="#t:task_module/0">task_module</a>()) :: <a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">boolean</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns <code class="inline">true</code> if given module is a task.</p>
  </section>
</div>
<div class="detail" id="task_name/1">
    <div class="detail-header">
    <a href="#task_name/1" class="detail-link" title="Link to this function">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this function</span>
    </a>
    <span class="signature">task_name(module)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L184" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>task_name(<a href="#t:task_module/0">task_module</a>()) :: <a href="#t:task_name/0">task_name</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>Returns the task name for the given <code class="inline">module</code>.</p>
  </section>
</div>
        </section>

        <section id="callbacks" class="details-list">
          <h1 class="section-heading">
            <a class="hover-link" href="#callbacks">
              <span class="icon-link" aria-hidden="true"></span>
              <span class="sr-only">Link to this section</span>
            </a>
            Callbacks
          </h1>
<div class="detail" id="c:run/1">
    <div class="detail-header">
    <a href="#c:run/1" class="detail-link" title="Link to this callback">
      <span class="icon-link" aria-hidden="true"></span>
      <span class="sr-only">Link to this callback</span>
    </a>
    <span class="signature">run(command_line_args)</span>
      <a href="https://github.com/elixir-lang/elixir/blob/v1.7.2/lib/mix/lib/mix/task.ex#L46" class="view-source" rel="help" title="View Source">
       <span class="icon-code" aria-hidden="true"></span>
       <span class="sr-only">View Source</span>
     </a>
        
      <div class="specs">
          <pre>run(command_line_args :: [<a href="https://hexdocs.pm/elixir/typespecs.html#built-in-types">binary</a>()]) :: <a href="https://hexdocs.pm/elixir/typespecs.html#basic-types">any</a>()</pre>
      </div>
  </div>
  <section class="docstring">
<p>A task needs to implement <code class="inline">run</code> which receives
a list of command line args.</p>
  </section>
</div>
        </section>
          <footer class="footer">
        <p>
          <span class="line">
            Built using
            <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener">ExDoc</a> (v0.19.1),
          </span>
          <span class="line">
            designed by
            <a href="https://twitter.com/dignifiedquire" target="_blank" rel="noopener" title="@dignifiedquire">Friedel Ziegelmayer</a>.
            </span>
        </p>
      </footer>
    </div>
  </div>
</section>
</div>
  <script src="dist/app-a0c90688fa.js"></script>
  
  </body>
</html>