feat: bin flag for serve and build

This commit is contained in:
Miles Murgaw committed 2023-07-14 20:06:54 -04:00
1 parent bfbca2653f
commit 41fd7a1040
7 files changed
+28 -13

No files matched your search

+15 -8
View File
@@ -176,14 +176,19 @@ pub enum ExecutableType {
}
impl CrateConfig {
pub fn new() -> Result<Self> {
pub fn new(bin: Option<PathBuf>) -> Result<Self> {
let dioxus_config = DioxusConfig::load()?.unwrap_or_default();
let crate_root = crate::cargo::crate_root()?;
let crate_dir = if let Some(package) = &dioxus_config.application.sub_package {
crate::cargo::crate_root()?.join(package)
crate_root.join(package)
} else if let Some(bin) = bin {
crate_root.join(bin)
} else {
crate::cargo::crate_root()?
crate_root
};
let meta = crate::cargo::Metadata::get()?;
let workspace_dir = meta.workspace_root;
let target_dir = meta.target_directory;
@@ -202,8 +207,9 @@ impl CrateConfig {
let manifest = cargo_toml::Manifest::from_path(cargo_def).unwrap();
let output_filename = {
match &manifest.package.as_ref().unwrap().default_run {
let mut output_filename = String::from("dioxus_app");
if let Some(package) = &manifest.package.as_ref() {
output_filename = match &package.default_run {
Some(default_run_target) => default_run_target.to_owned(),
None => manifest
.bin
@@ -216,9 +222,10 @@ impl CrateConfig {
.or(manifest.bin.first())
.or(manifest.lib.as_ref())
.and_then(|prod| prod.name.clone())
.expect("No executable or library found from cargo metadata."),
}
};
.unwrap_or(String::from("dioxus_app")),
};
}
let executable = ExecutableType::Binary(output_filename);
let release = false;