lux_cli/
upload.rs

1use clap::Args;
2use eyre::Result;
3use lux_lib::{config::Config, project::Project, upload::ProjectUpload};
4
5#[cfg(not(target_env = "msvc"))]
6use lux_lib::upload::SignatureProtocol;
7
8#[derive(Args)]
9pub struct Upload {
10    /// The protocol to use when signing upload artefacts
11    #[cfg(not(target_env = "msvc"))]
12    #[arg(long, default_value_t)]
13    sign_protocol: SignatureProtocol,
14}
15
16#[cfg(not(target_env = "msvc"))]
17pub async fn upload(data: Upload, config: Config) -> Result<()> {
18    let project = Project::current()?.unwrap();
19
20    ProjectUpload::new(project, &config)
21        .sign_protocol(data.sign_protocol)
22        .upload_to_luarocks()
23        .await?;
24
25    Ok(())
26}
27
28#[cfg(target_env = "msvc")]
29pub async fn upload(_data: Upload, config: Config) -> Result<()> {
30    let project = Project::current()?.unwrap();
31
32    ProjectUpload::new(project, &config)
33        .upload_to_luarocks()
34        .await?;
35
36    Ok(())
37}