Add output folder path
This commit is contained in:
parent
b8a4e97ae2
commit
c3da02b2a1
@ -33,7 +33,15 @@ pub fn build(logger: &Logger, opt: &Opt, _: &BuildOpt) -> Result<(), Error> {
|
|||||||
let config = fetch_config()?;
|
let config = fetch_config()?;
|
||||||
|
|
||||||
if config.global_config.website.use_default_css {
|
if config.global_config.website.use_default_css {
|
||||||
let css_path = file_writer::add_to_beginning(PathBuf::from("css/default.css"), "public")?;
|
let css_path = file_writer::add_to_beginning(
|
||||||
|
PathBuf::from("css/default.css"),
|
||||||
|
config
|
||||||
|
.clone()
|
||||||
|
.global_config
|
||||||
|
.website
|
||||||
|
.output
|
||||||
|
.unwrap_or("public".to_owned()),
|
||||||
|
)?;
|
||||||
logger.log(LogLevel::DETAIL, format!("Adding {:?}", css_path));
|
logger.log(LogLevel::DETAIL, format!("Adding {:?}", css_path));
|
||||||
file_writer::write_file(&css_path, DEFAULT_CSS, opt.overwrite)?;
|
file_writer::write_file(&css_path, DEFAULT_CSS, opt.overwrite)?;
|
||||||
}
|
}
|
||||||
@ -112,7 +120,15 @@ pub fn build(logger: &Logger, opt: &Opt, _: &BuildOpt) -> Result<(), Error> {
|
|||||||
logger.log(LogLevel::INFO, "Writing");
|
logger.log(LogLevel::INFO, "Writing");
|
||||||
for (idx, config) in configs.clone().iter().enumerate() {
|
for (idx, config) in configs.clone().iter().enumerate() {
|
||||||
let html_path = config.clone().page_config.page.html_path;
|
let html_path = config.clone().page_config.page.html_path;
|
||||||
let html_path = file_writer::add_to_beginning(PathBuf::from(html_path), "public")?;
|
let html_path = file_writer::add_to_beginning(
|
||||||
|
PathBuf::from(html_path),
|
||||||
|
config
|
||||||
|
.clone()
|
||||||
|
.global_config
|
||||||
|
.website
|
||||||
|
.output
|
||||||
|
.unwrap_or("public".to_owned()),
|
||||||
|
)?;
|
||||||
logger.log(LogLevel::DETAILER, format!("Writing {:?}", html_path));
|
logger.log(LogLevel::DETAILER, format!("Writing {:?}", html_path));
|
||||||
if let Some(render) = renders.get(idx) {
|
if let Some(render) = renders.get(idx) {
|
||||||
file_writer::write_file(&html_path, render.clone(), opt.overwrite)?;
|
file_writer::write_file(&html_path, render.clone(), opt.overwrite)?;
|
||||||
@ -125,11 +141,12 @@ pub fn build(logger: &Logger, opt: &Opt, _: &BuildOpt) -> Result<(), Error> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
logger.log(LogLevel::INFO, "Copying resources");
|
logger.log(LogLevel::INFO, "Copying resources");
|
||||||
if let Some(resources) = config.global_config.resources {
|
if let Some(resources) = config.global_config.resources.clone() {
|
||||||
for resource in resources.values() {
|
for resource in resources.values() {
|
||||||
let path = Path::new(&resource.source);
|
let path = Path::new(&resource.source);
|
||||||
if path.exists() {
|
if path.exists() {
|
||||||
match write_recursive_resource(
|
match write_recursive_resource(
|
||||||
|
config.clone(),
|
||||||
path.to_path_buf(),
|
path.to_path_buf(),
|
||||||
PathBuf::from(resource.source.clone()),
|
PathBuf::from(resource.source.clone()),
|
||||||
PathBuf::from(resource.destination.clone()),
|
PathBuf::from(resource.destination.clone()),
|
||||||
@ -152,6 +169,7 @@ pub fn build(logger: &Logger, opt: &Opt, _: &BuildOpt) -> Result<(), Error> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn write_recursive_resource(
|
fn write_recursive_resource(
|
||||||
|
config: Config,
|
||||||
resource_path: PathBuf,
|
resource_path: PathBuf,
|
||||||
source: PathBuf,
|
source: PathBuf,
|
||||||
destination: PathBuf,
|
destination: PathBuf,
|
||||||
@ -162,6 +180,7 @@ fn write_recursive_resource(
|
|||||||
match item {
|
match item {
|
||||||
Ok(item) => {
|
Ok(item) => {
|
||||||
match write_recursive_resource(
|
match write_recursive_resource(
|
||||||
|
config.clone(),
|
||||||
item.path(),
|
item.path(),
|
||||||
source.clone(),
|
source.clone(),
|
||||||
destination.clone(),
|
destination.clone(),
|
||||||
@ -179,8 +198,14 @@ fn write_recursive_resource(
|
|||||||
Ok(mut read_file) => {
|
Ok(mut read_file) => {
|
||||||
let mut contents = String::new();
|
let mut contents = String::new();
|
||||||
read_file.read_to_string(&mut contents)?;
|
read_file.read_to_string(&mut contents)?;
|
||||||
let mut dest_path =
|
let mut dest_path = file_writer::add_to_beginning(
|
||||||
file_writer::add_to_beginning(destination.clone(), "public")?;
|
destination.clone(),
|
||||||
|
config
|
||||||
|
.global_config
|
||||||
|
.website
|
||||||
|
.output
|
||||||
|
.unwrap_or("public".to_owned()),
|
||||||
|
)?;
|
||||||
|
|
||||||
if source.is_dir() {
|
if source.is_dir() {
|
||||||
dest_path = dest_path.join(relative.clone());
|
dest_path = dest_path.join(relative.clone());
|
||||||
|
@ -10,7 +10,7 @@ pub struct SinglePageConfigs {
|
|||||||
pub page_config_path: PathBuf,
|
pub page_config_path: PathBuf,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Config {
|
pub struct Config {
|
||||||
pub global_config: GlobalConfigToml,
|
pub global_config: GlobalConfigToml,
|
||||||
pub page_config_paths: Vec<PathBuf>,
|
pub page_config_paths: Vec<PathBuf>,
|
||||||
|
@ -42,6 +42,8 @@ pub struct WebsiteConfig {
|
|||||||
pub meta_description: Option<bool>,
|
pub meta_description: Option<bool>,
|
||||||
pub charset: Option<String>,
|
pub charset: Option<String>,
|
||||||
pub meta_og: Option<bool>,
|
pub meta_og: Option<bool>,
|
||||||
|
|
||||||
|
pub output: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Deserialize, Serialize, Clone, Debug)]
|
#[derive(Deserialize, Serialize, Clone, Debug)]
|
||||||
|
@ -113,6 +113,8 @@ fn run() -> Result<(), ()> {
|
|||||||
meta_description: None,
|
meta_description: None,
|
||||||
charset: Some("utf-8".to_owned()),
|
charset: Some("utf-8".to_owned()),
|
||||||
meta_og: None,
|
meta_og: None,
|
||||||
|
|
||||||
|
output: None,
|
||||||
},
|
},
|
||||||
navbar: navbar,
|
navbar: navbar,
|
||||||
resources: None,
|
resources: None,
|
||||||
|
Loading…
Reference in New Issue
Block a user