Skip to content

rari content sync-translated-content command will not move assets within folder #263

@yin1999

Description

@yin1999

What information was incorrect, unhelpful, or incomplete?

Assume there is a folder files/zh-cn/path/to/folder, which contains index.md and some assets (a.png, b.png); and running rari content sync-translated-content will move files/zh-cn/path/to/folder/index.md to another folder.

The command is expected to move both index.md and those assets (a.png, b.png) to other place, but it will only move the index.md file. See the souce code:

fn write_and_move_doc(doc: &Doc, target_slug: &str) -> Result<(), ToolError> {
let source_path = doc.path();
let target_directory = root_for_locale(doc.locale())?
.join(doc.locale().as_folder_str())
.join(url_to_folder_path(target_slug));
std::fs::create_dir_all(&target_directory)?;
// Write the new slug, store the old slug in `original_slug` metadata
let mut new_doc = doc.clone();
new_doc.meta.slug = target_slug.to_owned();
new_doc.meta.original_slug = Some(doc.slug().to_owned());
new_doc.write()?;
// Move the file with git
let output = exec_git_with_test_fallback(
&[
OsStr::new("mv"),
source_path.as_os_str(),
target_directory.as_os_str(),
],
root_for_locale(doc.locale())?,
);
if !output.status.success() {
return Err(ToolError::GitError(format!(
"Failed to move files: {}",
String::from_utf8_lossy(&output.stderr)
)));
}
// If the source directory is empty, remove it with the fs api.
let source_directory = doc.full_path().parent().unwrap();
if source_directory
.read_dir()
.map(|mut dir| dir.next().is_none())
.unwrap_or(false)
{
std::fs::remove_dir(source_directory)?;
}
Ok(())
}

What did you expect to see?

The rari content sync-translated-content command will move index.md and those assets which belong to the .md file.

Do you have any supporting links, references, or citations?

No response

Do you have anything more you want to share?

No response

Metadata

Metadata

Assignees

Labels

p1We will address this soon and will provide capacity from our team for it in the next few releases.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions