create_new_project_dir/
create_new_project_dir.rs1use ot_tools_io::{
7 ArrangementFile, BankFile, MarkersFile, OctatrackFileIO, OtToolsIoError, ProjectFile,
8};
9use std::path::PathBuf;
10
11fn bank_fname_from_id(id: usize) -> String {
12 format!["bank{id:0>2}.work"].to_string()
13}
14
15fn arr_fname_from_id(id: usize) -> String {
16 format!["arr{id:0>2}.work"].to_string()
17}
18
19fn main() -> Result<(), OtToolsIoError> {
20 let project_dirpath = PathBuf::from("example-new-project");
21
22 std::fs::create_dir_all(&project_dirpath)?;
23
24 let proj_fpath = project_dirpath.join("project.work");
25 ProjectFile::default().to_data_file(&proj_fpath)?;
26
27 let markers_fpath = project_dirpath.join("markers.work");
28 MarkersFile::default().to_data_file(&markers_fpath)?;
29
30 for i in 1..=16 {
31 let bank_fpath = project_dirpath.join(bank_fname_from_id(i));
32 BankFile::default().to_data_file(&bank_fpath)?;
33 }
34
35 for i in 1..=8 {
36 let arr_fpath = project_dirpath.join(arr_fname_from_id(i));
37 ArrangementFile::default().to_data_file(&arr_fpath)?;
38 }
39
40 println!("New project created: {project_dirpath:?}");
41 Ok(())
42}