Copier allows you to run post render tasks, just like cookiecutter. These are defined as a list of tasks
in your copier.yml
. They are simply shell commands to run.
The example I have below runs an update-gratitude
bash script after the copier template has been rendered.
# copier.yml
num: 128
_answers_file: .gratitude-copier-answers.yml
_tasks:
- "update-gratitude"
I have put the script in ~/.local/bin
so that I know it's always on my
$PATH
. It will reach back into the copier.yml
and update the default
number.
#!/bin/bash
# ~/.local/bin/update-gratitude
current=`awk '{print $2}' ~/.copier-templates/gratitude/copier.yml | head -n 1` new=`expr $current + 1` echo $current echo $new sed -i "s/$current/$new/g" ~/.copier-templates/gratitude/copier.yml
Top comments (1)
In Python's Copier library, post-run tasks offer a powerful way to automate actions after a template has been copied, making the templating process highly customizable and efficient. With post-run tasks, you can execute scripts, install dependencies, or configure settings automatically, streamlining workflow setup and reducing manual steps. This functionality is particularly useful for creating templates that require specific configurations immediately after they’re generated. For example, if you're using templates for social media automation, post-run tasks could be set up to instantly configure integrations, similar to how RunPost Instagram helps streamline and automate Instagram posting, making it easier to manage content effortlessly.