diff options
| author | quentin@aristote.fr <quentin@aristote.fr> | 2025-07-21 18:15:50 +0200 |
|---|---|---|
| committer | quentin@aristote.fr <quentin@aristote.fr> | 2025-07-21 18:15:50 +0200 |
| commit | 134e1c1847e87ce0ca63060d39b79febe919940b (patch) | |
| tree | 84b17df2104e04a8242b189040f76842b4e3cf69 /pkgs | |
| parent | 52175d4b883d21b5a297d03be675dcd770567694 (diff) | |
pkgs: add watermark
Diffstat (limited to 'pkgs')
| -rw-r--r-- | pkgs/default.nix | 2 | ||||
| -rw-r--r-- | pkgs/watermark/default.nix | 36 |
2 files changed, 38 insertions, 0 deletions
diff --git a/pkgs/default.nix b/pkgs/default.nix index 649c9c1..f4712ce 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -31,6 +31,8 @@ super: let }; wallpapers = super.callPackage ./static/wallpapers {}; }; + + watermark = super.callPackage ./watermark {}; }; in self diff --git a/pkgs/watermark/default.nix b/pkgs/watermark/default.nix new file mode 100644 index 0000000..6188ddb --- /dev/null +++ b/pkgs/watermark/default.nix @@ -0,0 +1,36 @@ +{ + writeShellApplication, + coreutils, + imagemagick, + pdftk, +}: +writeShellApplication { + name = "watermark"; + runtimeInputs = [coreutils imagemagick pdftk]; + text = '' + if [[ $1 == --help || $1 == -h ]] + then + echo "usage: watermark <receiver> <target> <output>" + exit 0 + fi + receiver="$1" + target="$2" + output="$3" + dir=$(mktemp -d) + pdftk "$target" burst output "$dir"/ + for page in "$dir"/*.pdf + do + magick -density 150 "$page" -flatten "$page".jpg + magick -size 280x160 \ + xc:none \ + -fill '#50505050' \ + -pointsize 25 \ + -font Dejavu-Sans \ + -gravity NorthWest -draw "text 20,20 '$(date +%Y-%m-%d)'" \ + -gravity SouthEast -draw "text 10,30 '$receiver'" \ + miff:- \ + | magick composite -tile - "$page".jpg "$page".jpg + done + magick "$dir"/*.jpg "$output" + ''; +} |
