diff --git a/src/commands/generate.rs b/src/commands/generate.rs index cc246e297..536517427 100644 --- a/src/commands/generate.rs +++ b/src/commands/generate.rs @@ -1,4 +1,4 @@ -use crate::settings::target::{Manifest, TargetType}; +use crate::settings::target::{Manifest, Site, TargetType}; use crate::{commands, install}; use std::path::PathBuf; use std::process::Command; @@ -14,7 +14,15 @@ pub fn generate( let target_type = target_type.unwrap_or_else(|| get_target_type(template)); run_generate(name, template, &target_type)?; let config_path = PathBuf::from("./").join(&name); - Manifest::generate(name.to_string(), target_type, config_path, site)?; + // TODO: this is tightly coupled to our site template. Need to remove once + // we refine our generate logic. + let generated_site = if site { + Some(Site::new("./public")) + } else { + None + }; + Manifest::generate(name.to_string(), target_type, config_path, generated_site)?; + Ok(()) } diff --git a/src/commands/init.rs b/src/commands/init.rs index d4fb65061..bd5297c47 100644 --- a/src/commands/init.rs +++ b/src/commands/init.rs @@ -1,5 +1,5 @@ use crate::commands; -use crate::settings::target::{Manifest, TargetType}; +use crate::settings::target::{Manifest, Site, TargetType}; use crate::terminal::message; use std::path::{Path, PathBuf}; @@ -15,7 +15,9 @@ pub fn init( let name = name.unwrap_or_else(|| &dirname); let target_type = target_type.unwrap_or_default(); let config_path = PathBuf::from("./"); - let manifest = Manifest::generate(name.to_string(), target_type, config_path, site)?; + let initialized_site = if site { Some(Site::default()) } else { None }; + let manifest = + Manifest::generate(name.to_string(), target_type, config_path, initialized_site)?; message::success("Succesfully created a `wrangler.toml`"); if site { diff --git a/src/settings/target/mod.rs b/src/settings/target/mod.rs index a92f54772..9804d8d7f 100644 --- a/src/settings/target/mod.rs +++ b/src/settings/target/mod.rs @@ -24,6 +24,15 @@ pub struct Site { pub entry_point: Option, } +impl Site { + pub fn new(bucket: &str) -> Site { + let mut site = Site::default(); + site.bucket = String::from(bucket); + + site + } +} + impl Default for Site { fn default() -> Site { Site { @@ -133,9 +142,8 @@ impl Manifest { name: String, target_type: TargetType, config_path: PathBuf, - site: bool, + site: Option, ) -> Result { - let site = if site { Some(Site::default()) } else { None }; let manifest = Manifest { account_id: String::new(), env: None,