Append text on install¶
Sometimes it might be useful to be able to append some text to a file. Dotdrop is able to do that with the help of actions and a temporary file.
Below is a config example to append to a file:
dynvariables:
tmpfile: mktemp
variables:
somefile_final: ~/.somefile
dotfiles:
f_somefile:
dst: "{{@@ tmpfile @@}}"
src: somefile
actions:
- strip "{{@@ somefile_final @@}}"
- append "{{@@ tmpfile @@}}" "{{@@ somefile_final @@}}"
actions:
pre:
strip: "sed -i '/^# my pattern$/,$d' {0}"
post:
append: "cat {0} >> {1}; rm -f {0}"
During installation, the strip
action is executed before the installation, and it strips everything from the pattern # my pattern
to the end of the file. Then the dotfile somefile
is installed in a temporary location (here tmpfile
) and finally the post action append
will append the contents of the tmpfile
to the final dotfile pointed to by somefile_final
.
Obviously, the dotfile in the dotpath should start with a unique pattern (here # my pattern
):
# my pattern
this is the end