diff --git a/src/build.rs b/src/build.rs index 9a5bc25..a61bbe0 100644 --- a/src/build.rs +++ b/src/build.rs @@ -311,7 +311,7 @@ impl Project { })) } - fn used_packages( &self, profile: Profile ) -> Vec< &CargoPackage > { + pub fn used_packages( &self, profile: Profile ) -> Vec< &CargoPackage > { let main_package = self.package(); let mut packages = self.project.used_packages( self.backend().triplet(), diff --git a/src/cmd_deploy.rs b/src/cmd_deploy.rs index 5433561..f79ed56 100644 --- a/src/cmd_deploy.rs +++ b/src/cmd_deploy.rs @@ -31,7 +31,7 @@ pub fn command_deploy(build_args: BuildArgs, directory: Option) -> Resu let target = targets[ 0 ]; let result = project.build( &config, target )?; - let deployment = Deployment::new( package, target, &result )?; + let deployment = Deployment::new(&project, target, &result )?; let is_using_default_directory; let directory = match directory { diff --git a/src/cmd_start.rs b/src/cmd_start.rs index 82aea50..6af31ff 100644 --- a/src/cmd_start.rs +++ b/src/cmd_start.rs @@ -142,7 +142,7 @@ impl LastBuild { fn new( project: Project, target: CargoTarget, counter: Counter ) -> Result< Self, Error > { let config = project.aggregate_configuration( Profile::Main )?; let result = project.build( &config, &target )?; - let deployment = Deployment::new( project.package(), &target, &result )?; + let deployment = Deployment::new( &project, &target, &result )?; Ok( LastBuild { counter, diff --git a/src/deployment.rs b/src/deployment.rs index 32d4f53..abecbb9 100644 --- a/src/deployment.rs +++ b/src/deployment.rs @@ -10,9 +10,12 @@ use cargo_shim::{ TargetKind, CargoPackage, CargoTarget, - CargoResult + CargoResult, + Profile }; +use build::Project; + use error::Error; use utils::read_bytes; @@ -101,8 +104,9 @@ impl Artifact { } impl Deployment { - pub fn new( package: &CargoPackage, target: &CargoTarget, result: &CargoResult ) -> Result< Self, Error > { - let crate_static_path = package.crate_root.join( "static" ); + pub fn new( project: &Project, target: &CargoTarget, result: &CargoResult ) -> Result< Self, Error > { + let package = project.package(); + let target_static_path = match target.kind { TargetKind::Example => Some( target.source_directory.join( format!( "{}-static", target.name ) ) ), TargetKind::Bin => Some( target.source_directory.join( "static" ) ), @@ -150,11 +154,13 @@ impl Deployment { }); } - routes.push( Route { - key: "".to_owned(), - kind: RouteKind::StaticDirectory( crate_static_path.to_owned() ), - can_be_deployed: true - }); + for package in project.used_packages(Profile::Main) { + routes.push( Route { + key: "".to_owned(), + kind: RouteKind::StaticDirectory( package.crate_root.join( "static" ) ), + can_be_deployed: true + }) + } routes.push( Route { key: "index.html".to_owned(),