Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions src/core/commands/command_load_assets.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ pub struct AssetLoadStep {
pub script: String,
pub file: String,
pub file_type: String,
pub version: String,
}

#[derive(Debug, Serialize, Clone, Deserialize, TS)]
Expand Down Expand Up @@ -100,7 +101,7 @@ impl Command for LoadAssetsArgs {

for file in files.iter() {
for format in import_formats.iter() {
if file.ends_with(format) {
if file.path.ends_with(format) {
debug!("Getting script for format: {}", format);

let mut script_path = project.get_root_directory();
Expand All @@ -113,7 +114,8 @@ impl Command for LoadAssetsArgs {
element: element.0.clone(),
script: script_path.to_str().unwrap().to_string(),
file_type: format.clone(),
file: file.clone(),
file: file.path.clone(),
version: file.version.clone(),
});

break;
Expand Down
9 changes: 6 additions & 3 deletions src/core/version_control/direct.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ use crate::core::{
version_control::common::resolve_element_path,
};

use super::{ExportError, ExportResult, VersionControl};
use super::{ExportError, ExportResult, VersionControl, VersionControlFile};
use log::{error, info};
use serde::{Deserialize, Serialize};

Expand Down Expand Up @@ -54,7 +54,7 @@ impl VersionControl for VersionControlConfigDirect {
project: &project::Project,
element_name: String,
element_data: &ResolvedElementData,
) -> Vec<String> {
) -> Vec<VersionControlFile> {
let asset_name = element_data.get_asset_name().unwrap();
let dept = element_data.get_owning_department().unwrap();
let shot = element_data.get_shot();
Expand All @@ -78,7 +78,10 @@ impl VersionControl for VersionControlConfigDirect {
return files
.into_iter()
.filter(|e| e.is_ok())
.map(|e| e.unwrap().path().to_str().unwrap().to_string())
.map(|e| VersionControlFile {
path: e.unwrap().path().to_str().unwrap().to_string(),
version: "current".to_string(),
})
.collect()
}
Err(_) => return Vec::new(),
Expand Down
8 changes: 7 additions & 1 deletion src/core/version_control/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@ pub struct ExportResult {
pub script: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct VersionControlFile {
pub path: String,
pub version: String,
}

#[enum_dispatch]
pub trait VersionControl {
fn export(
Expand All @@ -40,7 +46,7 @@ pub trait VersionControl {
project: &project::Project,
element_name: String,
element_data: &ResolvedElementData,
) -> Vec<String>;
) -> Vec<VersionControlFile>;
}

#[derive(Debug, Clone, Serialize, Deserialize)]
Expand Down
4 changes: 2 additions & 2 deletions src/core/version_control/symlink.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ use crate::core::{
version_control::{common::resolve_element_path, versioned_directories::get_next_version},
};

use super::{ExportError, ExportResult, VersionControl};
use super::{ExportError, ExportResult, VersionControl, VersionControlFile};
use log::{error, info};
use path_absolutize::Absolutize;
use serde::{Deserialize, Serialize};
Expand Down Expand Up @@ -111,7 +111,7 @@ impl VersionControl for VersionControlConfigSymlink {
_project: &project::Project,
_element_name: String,
_element_data: &ResolvedElementData,
) -> Vec<String> {
) -> Vec<VersionControlFile> {
todo!()
}
}
17 changes: 13 additions & 4 deletions src/core/version_control/versioned_directories.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ use crate::core::{
version_control::common::resolve_element_path,
};

use super::{ExportError, ExportResult, VersionControl};
use super::{ExportError, ExportResult, VersionControl, VersionControlFile};
use log::{error, info, warn};
use serde::{Deserialize, Serialize};

Expand Down Expand Up @@ -63,7 +63,7 @@ impl VersionControl for VersionControlConfigVersionedDirectories {
project: &project::Project,
element_name: String,
element_data: &ResolvedElementData,
) -> Vec<String> {
) -> Vec<VersionControlFile> {
let asset_name = element_data.get_asset_name().unwrap();
let dept = element_data.get_owning_department().unwrap();
let shot = element_data.get_shot();
Expand Down Expand Up @@ -104,10 +104,19 @@ impl VersionControl for VersionControlConfigVersionedDirectories {
let files = std::fs::read_dir(path.path());
match files {
Ok(files) => {
let files: Vec<String> = files
let files: Vec<VersionControlFile> = files
.into_iter()
.filter(|e| e.is_ok())
.map(|e| e.unwrap().path().to_str().unwrap().to_string())
.map(|e| {
let mut path = e.unwrap().path();
let file = path.to_str().unwrap().to_string();
path.pop();
let version = path.file_name().unwrap().to_str().unwrap().to_string();
VersionControlFile {
path: file,
version,
}
})
.collect();
info!("Found files: {:?}", files);

Expand Down
Loading