Skip to main content

lux_cli/dist/
mod.rs

1mod bin;
2mod flat_archive;
3
4pub use bin::*;
5pub use flat_archive::*;
6
7use clap::Subcommand;
8
9#[derive(Subcommand)]
10pub enum Dist {
11    /// Distribute an archive of a flat install tree which includes all dependencies.{n}
12    /// The resulting archive does not include the `etc` directory or build dependencies.{n}
13    /// Unlike a Lux tree, dependency conflicts are not supported/handled.
14    FlatArchive(FlatArchive),
15    /// Compile a Lux project, including its dependencies, into a single binary,{n}
16    /// which runs on systems that do not have Lua installed.{n}
17    /// Projects with native Lua modules are not single binaries: the modules are{n}
18    /// copied as shared libraries next to the output binary, and must be{n}
19    /// shipped alongside it.{n}
20    /// As with flat-archive, dependency conflicts are not supported/handled.{n}
21    /// {n}
22    /// The entrypoint is specified via the lux.toml's [run] field, e.g.: {n}
23    /// {n}
24    /// ```toml{n}
25    /// [run]{n}
26    /// args = ["src/main.lua"]{n}
27    /// ```
28    Bin(Bin),
29}