summaryrefslogtreecommitdiff
path: root/pkgs
diff options
context:
space:
mode:
authorquentin@aristote.fr <quentin@aristote.fr>2025-07-21 18:15:50 +0200
committerquentin@aristote.fr <quentin@aristote.fr>2025-07-21 18:15:50 +0200
commit134e1c1847e87ce0ca63060d39b79febe919940b (patch)
tree84b17df2104e04a8242b189040f76842b4e3cf69 /pkgs
parent52175d4b883d21b5a297d03be675dcd770567694 (diff)
pkgs: add watermark
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/default.nix2
-rw-r--r--pkgs/watermark/default.nix36
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"
+ '';
+}