1
0
mirror of https://github.com/deadc0de6/dotdrop.git synced 2026-02-04 19:09:44 +00:00
Files
dotdrop/docs/howto/append.md
2020-09-13 22:46:37 +02:00

1.1 KiB

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 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 content of the tmpfile to the final dotfile pointed by somefile_final

Obviously the dotfile in the dotpath should start with a unique pattern (here # my pattern):

# my pattern
this is the end