mirror of
https://github.com/rclone/rclone.git
synced 2025-06-20 11:47:57 +02:00
docs: lib/transform: cleanup formatting
This commit is contained in:
parent
62a9727ab5
commit
c5f55243e1
@ -34,17 +34,15 @@ var commandDefinition = &cobra.Command{
|
|||||||
Long: strings.ReplaceAll(`
|
Long: strings.ReplaceAll(`
|
||||||
convmv supports advanced path name transformations for converting and renaming files and directories by applying prefixes, suffixes, and other alterations.
|
convmv supports advanced path name transformations for converting and renaming files and directories by applying prefixes, suffixes, and other alterations.
|
||||||
|
|
||||||
`+transform.Help()+`
|
`+transform.Help()+`Multiple transformations can be used in sequence, applied in the order they are specified on the command line.
|
||||||
|
|
||||||
Multiple transformations can be used in sequence, applied in the order they are specified on the command line.
|
|
||||||
|
|
||||||
The ¡--name-transform¡ flag is also available in ¡sync¡, ¡copy¡, and ¡move¡.
|
The ¡--name-transform¡ flag is also available in ¡sync¡, ¡copy¡, and ¡move¡.
|
||||||
|
|
||||||
## Files vs Directories ##
|
## Files vs Directories
|
||||||
|
|
||||||
By default ¡--name-transform¡ will only apply to file names. The means only the leaf file name will be transformed.
|
By default ¡--name-transform¡ will only apply to file names. The means only the leaf file name will be transformed.
|
||||||
However some of the transforms would be better applied to the whole path or just directories.
|
However some of the transforms would be better applied to the whole path or just directories.
|
||||||
To choose which which part of the file path is affected some tags can be added to the ¡--name-transform¡
|
To choose which which part of the file path is affected some tags can be added to the ¡--name-transform¡.
|
||||||
|
|
||||||
| Tag | Effect |
|
| Tag | Effect |
|
||||||
|------|------|
|
|------|------|
|
||||||
@ -54,11 +52,11 @@ To choose which which part of the file path is affected some tags can be added t
|
|||||||
|
|
||||||
This is used by adding the tag into the transform name like this: ¡--name-transform file,prefix=ABC¡ or ¡--name-transform dir,prefix=DEF¡.
|
This is used by adding the tag into the transform name like this: ¡--name-transform file,prefix=ABC¡ or ¡--name-transform dir,prefix=DEF¡.
|
||||||
|
|
||||||
For some conversions using all is more likely to be useful, for example ¡--name-transform all,nfc¡
|
For some conversions using all is more likely to be useful, for example ¡--name-transform all,nfc¡.
|
||||||
|
|
||||||
Note that ¡--name-transform¡ may not add path separators ¡/¡ to the name. This will cause an error.
|
Note that ¡--name-transform¡ may not add path separators ¡/¡ to the name. This will cause an error.
|
||||||
|
|
||||||
## Ordering and Conflicts ##
|
## Ordering and Conflicts
|
||||||
|
|
||||||
* Transformations will be applied in the order specified by the user.
|
* Transformations will be applied in the order specified by the user.
|
||||||
* If the ¡file¡ tag is in use (the default) then only the leaf name of files will be transformed.
|
* If the ¡file¡ tag is in use (the default) then only the leaf name of files will be transformed.
|
||||||
@ -73,19 +71,19 @@ user, allowing for intentional use cases (e.g., trimming one prefix before addin
|
|||||||
* Users should be aware that certain combinations may lead to unexpected results and should verify
|
* Users should be aware that certain combinations may lead to unexpected results and should verify
|
||||||
transformations using ¡--dry-run¡ before execution.
|
transformations using ¡--dry-run¡ before execution.
|
||||||
|
|
||||||
## Race Conditions and Non-Deterministic Behavior ##
|
## Race Conditions and Non-Deterministic Behavior
|
||||||
|
|
||||||
Some transformations, such as ¡replace=old:new¡, may introduce conflicts where multiple source files map to the same destination name.
|
Some transformations, such as ¡replace=old:new¡, may introduce conflicts where multiple source files map to the same destination name.
|
||||||
This can lead to race conditions when performing concurrent transfers. It is up to the user to anticipate these.
|
This can lead to race conditions when performing concurrent transfers. It is up to the user to anticipate these.
|
||||||
* If two files from the source are transformed into the same name at the destination, the final state may be non-deterministic.
|
* If two files from the source are transformed into the same name at the destination, the final state may be non-deterministic.
|
||||||
* Running rclone check after a sync using such transformations may erroneously report missing or differing files due to overwritten results.
|
* Running rclone check after a sync using such transformations may erroneously report missing or differing files due to overwritten results.
|
||||||
|
|
||||||
* To minimize risks, users should:
|
To minimize risks, users should:
|
||||||
* Carefully review transformations that may introduce conflicts.
|
* Carefully review transformations that may introduce conflicts.
|
||||||
* Use ¡--dry-run¡ to inspect changes before executing a sync (but keep in mind that it won't show the effect of non-deterministic transformations).
|
* Use ¡--dry-run¡ to inspect changes before executing a sync (but keep in mind that it won't show the effect of non-deterministic transformations).
|
||||||
* Avoid transformations that cause multiple distinct source files to map to the same destination name.
|
* Avoid transformations that cause multiple distinct source files to map to the same destination name.
|
||||||
* Consider disabling concurrency with ¡--transfers=1¡ if necessary.
|
* Consider disabling concurrency with ¡--transfers=1¡ if necessary.
|
||||||
* Certain transformations (e.g. ¡prefix¡) will have a multiplying effect every time they are used. Avoid these when using ¡bisync¡.
|
* Certain transformations (e.g. ¡prefix¡) will have a multiplying effect every time they are used. Avoid these when using ¡bisync¡.
|
||||||
|
|
||||||
`, "¡", "`"),
|
`, "¡", "`"),
|
||||||
Annotations: map[string]string{
|
Annotations: map[string]string{
|
||||||
|
@ -51,7 +51,7 @@ var commandList = []commands{
|
|||||||
{command: "--name-transform nfd", description: "Converts the file name to NFD Unicode normalization form."},
|
{command: "--name-transform nfd", description: "Converts the file name to NFD Unicode normalization form."},
|
||||||
{command: "--name-transform nfkc", description: "Converts the file name to NFKC Unicode normalization form."},
|
{command: "--name-transform nfkc", description: "Converts the file name to NFKC Unicode normalization form."},
|
||||||
{command: "--name-transform nfkd", description: "Converts the file name to NFKD Unicode normalization form."},
|
{command: "--name-transform nfkd", description: "Converts the file name to NFKD Unicode normalization form."},
|
||||||
{command: "--name-transform command=/path/to/my/programfile names.", description: "Executes an external program to transform"},
|
{command: "--name-transform command=/path/to/my/programfile names.", description: "Executes an external program to transform."},
|
||||||
}
|
}
|
||||||
|
|
||||||
var examples = []example{
|
var examples = []example{
|
||||||
@ -106,7 +106,7 @@ func commandTable() string {
|
|||||||
for _, c := range commandList {
|
for _, c := range commandList {
|
||||||
s += fmt.Sprintf("\n| `%s` | %s |", c.command, c.description)
|
s += fmt.Sprintf("\n| `%s` | %s |", c.command, c.description)
|
||||||
}
|
}
|
||||||
s += "\n\n\n"
|
s += "\n\n"
|
||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,23 +116,23 @@ func SprintList() string {
|
|||||||
var charmaps transform.CharmapChoices
|
var charmaps transform.CharmapChoices
|
||||||
|
|
||||||
s := commandTable()
|
s := commandTable()
|
||||||
s += fmt.Sprintln("Conversion modes: \n```")
|
s += "Conversion modes:\n\n```\n"
|
||||||
for _, v := range algos.Choices() {
|
for _, v := range algos.Choices() {
|
||||||
s += fmt.Sprintln(v + " ")
|
s += v + "\n"
|
||||||
}
|
}
|
||||||
s += fmt.Sprintln("```")
|
s += "```\n\n"
|
||||||
|
|
||||||
s += fmt.Sprintln("Char maps: \n```")
|
s += "Char maps:\n\n```\n"
|
||||||
for _, v := range charmaps.Choices() {
|
for _, v := range charmaps.Choices() {
|
||||||
s += fmt.Sprintln(v + " ")
|
s += v + "\n"
|
||||||
}
|
}
|
||||||
s += fmt.Sprintln("```")
|
s += "```\n\n"
|
||||||
|
|
||||||
s += fmt.Sprintln("Encoding masks: \n```")
|
s += "Encoding masks:\n\n```\n"
|
||||||
for _, v := range strings.Split(encoder.ValidStrings(), ",") {
|
for _, v := range strings.Split(encoder.ValidStrings(), ", ") {
|
||||||
s += fmt.Sprintln(v + " ")
|
s += v + "\n"
|
||||||
}
|
}
|
||||||
s += fmt.Sprintln("```")
|
s += "```\n\n"
|
||||||
|
|
||||||
s += sprintExamples()
|
s += sprintExamples()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user