mangadex-home-rs/build.rs

44 lines
1.2 KiB
Rust
Raw Normal View History

2021-07-09 17:37:15 -07:00
use std::path::PathBuf;
2021-07-09 14:32:00 -07:00
use std::process::Command;
2021-07-09 17:37:15 -07:00
use std::str::FromStr;
use std::{error::Error, io::Write};
2021-06-06 14:48:48 -07:00
2021-06-06 15:17:42 -07:00
use vergen::{vergen, Config, ShaKind};
2021-06-06 14:48:48 -07:00
fn main() -> Result<(), Box<dyn Error>> {
2021-07-09 14:32:00 -07:00
// Initialize vergen stuff
2021-06-06 15:17:42 -07:00
let mut config = Config::default();
*config.git_mut().sha_kind_mut() = ShaKind::Short;
vergen(config)?;
2021-07-09 14:32:00 -07:00
// Initialize SQL stuff
let project_root = std::env::var("CARGO_MANIFEST_DIR").unwrap();
Command::new("mkdir")
.args(["cache", "--parents"])
.current_dir(&project_root)
.output()?;
Command::new("sqlite3")
.args(["cache/metadata.sqlite", include_str!("db_queries/init.sql")])
.current_dir(&project_root)
.output()?;
2021-07-09 17:37:15 -07:00
let env_var_regex = "^DATABASE_URL=sqlite:./cache/metadata.sqlite$";
if !Command::new("grep")
.args([env_var_regex, ".env"])
.current_dir(&project_root)
.output()?
.status
.success()
{
let mut path = PathBuf::from_str(&project_root)?;
path.push(".env");
let mut file = std::fs::OpenOptions::new().append(true).open(path)?;
file.write_all(b"\nDATABASE_URL=sqlite:./cache/metadata.sqlite\n")?;
file.sync_all()?;
}
2021-06-06 14:48:48 -07:00
Ok(())
}