summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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"
+ '';
+}