mod clone;
mod init;
pub use clone::clone_project;
pub use init::initialize_project;
use io::Write;
use owo_colors::OwoColorize;
use std::{fs, io};
#[macro_export]
macro_rules! create_files {
() => {};
($($fname:expr $(=> $content:expr)?),*) => {
$(
create_file($fname, $($content)*)?;
)*
};
}
#[macro_export]
macro_rules! files {
($({ $arg:tt => $cnt:expr $(; $fmt:expr),* }),*) => {
$(
{
let mut file = std::fs::File::create(format!($arg $(, $fmt)*))?;
core::write!(file, $cnt)?;
file.flush()?;
}
)*
};
}
#[macro_export]
macro_rules! create_dirs {
() => {};
($($arg:tt),*) => {
$(
{
std::fs::create_dir_all(&format!($arg))?
}
)*
};
}
pub fn create_file(name: &str, contents: &str) -> io::Result<()> {
let mut file = fs::File::create(name)?;
write!(file, "{contents}")?;
file.flush()
}
pub fn success(msg: &str) {
println!("{}: {msg}", "Success".green());
}
pub fn fail(msg: &str) {
eprintln!("{}: {msg}", "Error".red());
}