Filename Manipulating [Examples]
Being able to have different names for the source items and their destination items arises as a vital need in some use cases.
dt-cli offers this utility via a convenient and versatile way, with the power of regular expressions.
Enable special handling for "dotfiles" (files or folders whose name begins with a period) in the package directory. If this option is enabled, Stow will add a preprocessing step for each file or folder whose name begins with "dot-", and replace the "dot-" prefix in the name by a period (.). This is useful when Stow is used to manage collections of dotfiles, to avoid having a package directory full of hidden files.
dt-cli's filename manipulating capability functions in a similar way, but in a much more powerful way: you can specify arbitrary renaming rules, thanks to the flexibility of regular expressions; you can also specify arbitrary number of renaming rules, multiple defined rules will apply to your items one-after-another.
Renaming rules are defined in the
rename array. A renaming rule is represented by a 2-tuple in the config file, where the first element is a regular expression pattern and the second element is a substitution rule. To achieve an identical behaviour as the
--dotfiles option with GNU Stow, a renaming rule can be set in
global section of the config file as:
[global] rename = [ [ "^dot-", # "pattern" ".", # "substitution rule" ], # Multiple renaming rules are applied sequentially, with the previous rule's # output being the input of the current rule. ]
dt-cli's renaming capability is powered by regular expressions, it also supports regular expression features like capturing groups, which allows infinitely flexible filename manipulation. More examples can be found in the hands-on guide.