|
12 | 12 | <div class="col-content"> |
13 | 13 | <div class="tsd-page-title"> |
14 | 14 | <h2>@matrixai/exec</h2></div> |
15 | | -<div class="tsd-panel tsd-typography"><a id="md:js-exec" class="tsd-anchor"></a><h1><a href="#md:js-exec">js-exec</a></h1><p>staging: <a href="https://gitlab.com/MatrixAI/open-source/js-exec/commits/staging"><img src="https://gitlab.com/MatrixAI/open-source/js-exec/badges/staging/pipeline.svg" alt="pipeline status"></a> |
16 | | -master: <a href="https://gitlab.com/MatrixAI/open-source/js-exec/commits/master"><img src="https://gitlab.com/MatrixAI/open-source/js-exec/badges/master/pipeline.svg" alt="pipeline status"></a></p> |
17 | | -<p>This exposes <code>execvp</code> to Node.js. This allows running a child process that replaces the parent process image. This is not possible on Windows, if you run this on Windows, expect an exception!</p> |
| 15 | +<div class="tsd-panel tsd-typography"><a id="md:js-exec" class="tsd-anchor"></a><h1><a href="#md:js-exec">js-exec</a></h1><p>This exposes <code>execvp</code> to Node.js. This allows running a child process that replaces the parent process image. This is not possible on Windows, if you run this on Windows, expect an exception!</p> |
18 | 16 | <a id="md:installation" class="tsd-anchor"></a><h2><a href="#md:installation">Installation</a></h2><pre><code class="language-sh"><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">install</span><span class="hl-1"> </span><span class="hl-3">--save</span><span class="hl-1"> </span><span class="hl-2">@matrixai/exec</span> |
19 | 17 | </code><button>Copy</button></pre> |
20 | | -<a id="md:usage" class="tsd-anchor"></a><h2><a href="#md:usage">Usage</a></h2><a id="md:development" class="tsd-anchor"></a><h2><a href="#md:development">Development</a></h2><p>Run <code>nix develop</code>, and once you're inside, you can use:</p> |
21 | | -<pre><code class="language-sh"><span class="hl-4"># install (or reinstall packages from package.json)</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">install</span><br/><span class="hl-4"># build the native objects</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">prebuild</span><br/><span class="hl-4"># build the dist and native objects</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">build</span><br/><span class="hl-4"># run the repl (this allows you to import from ./src)</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">ts-node</span><br/><span class="hl-4"># run the tests</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">test</span><br/><span class="hl-4"># lint the source code</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">lint</span><br/><span class="hl-4"># automatically fix the source</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">lintfix</span> |
| 18 | +<a id="md:usage" class="tsd-anchor"></a><h2><a href="#md:usage">Usage</a></h2><p>exec can be used in the following way.</p> |
| 19 | +<pre><code class="language-ts"><span class="hl-4">import</span><span class="hl-1"> { </span><span class="hl-5">exec</span><span class="hl-1"> } </span><span class="hl-4">from</span><span class="hl-1"> </span><span class="hl-2">'@matrixai/exec'</span><span class="hl-1">;</span><br/><span class="hl-6">// This should output the current enviroment while adding `test_env` to it.</span><br/><span class="hl-5">exec</span><span class="hl-1">.</span><span class="hl-0">execvp</span><span class="hl-1">(</span><br/><span class="hl-1"> </span><span class="hl-2">'node'</span><span class="hl-1">,</span><br/><span class="hl-1"> [</span><br/><span class="hl-1"> </span><span class="hl-2">'-e'</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-2">'console.log(process.env)'</span><span class="hl-1">,</span><br/><span class="hl-1"> ],</span><br/><span class="hl-1"> {</span><br/><span class="hl-1"> </span><span class="hl-5">test_env:</span><span class="hl-1"> </span><span class="hl-2">'this value'</span><br/><span class="hl-1"> },</span><br/><span class="hl-1">);</span> |
| 20 | +</code><button>Copy</button></pre> |
| 21 | +<p>Note that only linux and mac platforms are supported.</p> |
| 22 | +<a id="md:development" class="tsd-anchor"></a><h2><a href="#md:development">Development</a></h2><p>Run <code>nix develop</code>, and once you're inside, you can use:</p> |
| 23 | +<pre><code class="language-sh"><span class="hl-6"># install (or reinstall packages from package.json)</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">install</span><br/><span class="hl-6"># build the native objects</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">prebuild</span><br/><span class="hl-6"># build the dist and native objects</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">build</span><br/><span class="hl-6"># run the repl (this allows you to import from ./src)</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">tsx</span><br/><span class="hl-6"># run the tests</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">test</span><br/><span class="hl-6"># lint the source code</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">lint</span><br/><span class="hl-6"># automatically fix the source</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">lintfix</span> |
22 | 24 | </code><button>Copy</button></pre> |
23 | 25 | <a id="md:cargorust-targets" class="tsd-anchor"></a><h3><a href="#md:cargorust-targets">Cargo/Rust targets</a></h3><p>Cargo is a cross-compiler. The target structure looks like this:</p> |
24 | | -<pre><code><span class="hl-1"><</span><span class="hl-5">arch</span><span class="hl-1">><</span><span class="hl-5">sub</span><span class="hl-1">>-<</span><span class="hl-5">vendor</span><span class="hl-1">>-<</span><span class="hl-5">sys</span><span class="hl-1">>-<</span><span class="hl-5">abi</span><span class="hl-1">></span> |
| 26 | +<pre><code><span class="hl-1"><</span><span class="hl-7">arch</span><span class="hl-1">><</span><span class="hl-7">sub</span><span class="hl-1">>-<</span><span class="hl-7">vendor</span><span class="hl-1">>-<</span><span class="hl-7">sys</span><span class="hl-1">>-<</span><span class="hl-7">abi</span><span class="hl-1">></span> |
25 | 27 | </code><button>Copy</button></pre> |
26 | 28 | <p>For example:</p> |
27 | | -<pre><code><span class="hl-6">x86_64</span><span class="hl-1">-</span><span class="hl-6">unknown</span><span class="hl-1">-</span><span class="hl-6">linux</span><span class="hl-1">-</span><span class="hl-6">gnu</span><br/><span class="hl-6">x86_64</span><span class="hl-1">-</span><span class="hl-6">pc</span><span class="hl-1">-</span><span class="hl-6">windows</span><span class="hl-1">-</span><span class="hl-6">msvc</span><br/><span class="hl-6">aarch64</span><span class="hl-1">-</span><span class="hl-6">apple</span><span class="hl-1">-</span><span class="hl-6">darwin</span><br/><span class="hl-6">x86_64</span><span class="hl-1">-</span><span class="hl-6">apple</span><span class="hl-1">-</span><span class="hl-6">darwin</span> |
| 29 | +<pre><code><span class="hl-5">x86_64</span><span class="hl-1">-</span><span class="hl-5">unknown</span><span class="hl-1">-</span><span class="hl-5">linux</span><span class="hl-1">-</span><span class="hl-5">gnu</span><br/><span class="hl-5">x86_64</span><span class="hl-1">-</span><span class="hl-5">pc</span><span class="hl-1">-</span><span class="hl-5">windows</span><span class="hl-1">-</span><span class="hl-5">msvc</span><br/><span class="hl-5">aarch64</span><span class="hl-1">-</span><span class="hl-5">apple</span><span class="hl-1">-</span><span class="hl-5">darwin</span><br/><span class="hl-5">x86_64</span><span class="hl-1">-</span><span class="hl-5">apple</span><span class="hl-1">-</span><span class="hl-5">darwin</span> |
28 | 30 | </code><button>Copy</button></pre> |
29 | 31 | <p>The available target list is in <code>rustc --print target-list</code>.</p> |
30 | 32 | <a id="md:docs-generation" class="tsd-anchor"></a><h3><a href="#md:docs-generation">Docs Generation</a></h3><pre><code class="language-sh"><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">docs</span> |
31 | 33 | </code><button>Copy</button></pre> |
32 | 34 | <p>See the docs at: <a href="https://matrixai.github.io/js-exec/">https://matrixai.github.io/js-exec/</a></p> |
33 | 35 | <a id="md:publishing" class="tsd-anchor"></a><h3><a href="#md:publishing">Publishing</a></h3><p>Publishing is handled automatically by the staging pipeline.</p> |
34 | 36 | <p>Prerelease:</p> |
35 | | -<pre><code class="language-sh"><span class="hl-4"># npm login</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">version</span><span class="hl-1"> </span><span class="hl-2">prepatch</span><span class="hl-1"> </span><span class="hl-3">--preid</span><span class="hl-1"> </span><span class="hl-2">alpha</span><span class="hl-1"> </span><span class="hl-4"># premajor/preminor/prepatch</span><br/><span class="hl-0">git</span><span class="hl-1"> </span><span class="hl-2">push</span><span class="hl-1"> </span><span class="hl-3">--follow-tags</span> |
| 37 | +<pre><code class="language-sh"><span class="hl-6"># npm login</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">version</span><span class="hl-1"> </span><span class="hl-2">prepatch</span><span class="hl-1"> </span><span class="hl-3">--preid</span><span class="hl-1"> </span><span class="hl-2">alpha</span><span class="hl-1"> </span><span class="hl-6"># premajor/preminor/prepatch</span><br/><span class="hl-0">git</span><span class="hl-1"> </span><span class="hl-2">push</span><span class="hl-1"> </span><span class="hl-3">--follow-tags</span> |
36 | 38 | </code><button>Copy</button></pre> |
37 | 39 | <p>Release:</p> |
38 | | -<pre><code class="language-sh"><span class="hl-4"># npm login</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">version</span><span class="hl-1"> </span><span class="hl-2">patch</span><span class="hl-1"> </span><span class="hl-4"># major/minor/patch</span><br/><span class="hl-0">git</span><span class="hl-1"> </span><span class="hl-2">push</span><span class="hl-1"> </span><span class="hl-3">--follow-tags</span> |
| 40 | +<pre><code class="language-sh"><span class="hl-6"># npm login</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">version</span><span class="hl-1"> </span><span class="hl-2">patch</span><span class="hl-1"> </span><span class="hl-6"># major/minor/patch</span><br/><span class="hl-0">git</span><span class="hl-1"> </span><span class="hl-2">push</span><span class="hl-1"> </span><span class="hl-3">--follow-tags</span> |
39 | 41 | </code><button>Copy</button></pre> |
40 | 42 | <p>Manually:</p> |
41 | | -<pre><code class="language-sh"><span class="hl-4"># npm login</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">version</span><span class="hl-1"> </span><span class="hl-2">patch</span><span class="hl-1"> </span><span class="hl-4"># major/minor/patch</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">build</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">publish</span><span class="hl-1"> </span><span class="hl-3">--access</span><span class="hl-1"> </span><span class="hl-2">public</span><br/><span class="hl-0">git</span><span class="hl-1"> </span><span class="hl-2">push</span><br/><span class="hl-0">git</span><span class="hl-1"> </span><span class="hl-2">push</span><span class="hl-1"> </span><span class="hl-3">--tags</span> |
| 43 | +<pre><code class="language-sh"><span class="hl-6"># npm login</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">version</span><span class="hl-1"> </span><span class="hl-2">patch</span><span class="hl-1"> </span><span class="hl-6"># major/minor/patch</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">run</span><span class="hl-1"> </span><span class="hl-2">build</span><br/><span class="hl-0">npm</span><span class="hl-1"> </span><span class="hl-2">publish</span><span class="hl-1"> </span><span class="hl-3">--access</span><span class="hl-1"> </span><span class="hl-2">public</span><br/><span class="hl-0">git</span><span class="hl-1"> </span><span class="hl-2">push</span><br/><span class="hl-0">git</span><span class="hl-1"> </span><span class="hl-2">push</span><span class="hl-1"> </span><span class="hl-3">--tags</span> |
42 | 44 | </code><button>Copy</button></pre> |
43 | 45 | </div></div> |
44 | 46 | <div class="col-sidebar"> |
|
0 commit comments