summaryrefslogtreecommitdiffstats
path: root/pkgs/applications/graphics/image_optim
diff options
context:
space:
mode:
authorSerhii Khoma <srghma@gmail.com>2019-03-17 22:19:24 +0200
committerSerhii Khoma <srghma@gmail.com>2019-03-17 22:19:24 +0200
commit57aa87131f26c085aa4264dd2b378bb8ee5d72e6 (patch)
tree8271bedbb286eb0d5e4b2d93e7453a15d24eb157 /pkgs/applications/graphics/image_optim
parent1d7a5d87ea4ce4178d2bb52208ccd66f523007b5 (diff)
image_optim: init at 0.26.3
Diffstat (limited to 'pkgs/applications/graphics/image_optim')
-rw-r--r--pkgs/applications/graphics/image_optim/Gemfile2
-rw-r--r--pkgs/applications/graphics/image_optim/Gemfile.lock23
-rw-r--r--pkgs/applications/graphics/image_optim/default.nix68
-rw-r--r--pkgs/applications/graphics/image_optim/gemset.nix51
-rwxr-xr-xpkgs/applications/graphics/image_optim/update.sh9
5 files changed, 153 insertions, 0 deletions
diff --git a/pkgs/applications/graphics/image_optim/Gemfile b/pkgs/applications/graphics/image_optim/Gemfile
new file mode 100644
index 000000000000..d6a0f13a4c1a
--- /dev/null
+++ b/pkgs/applications/graphics/image_optim/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'image_optim'
diff --git a/pkgs/applications/graphics/image_optim/Gemfile.lock b/pkgs/applications/graphics/image_optim/Gemfile.lock
new file mode 100644
index 000000000000..20c9772ce464
--- /dev/null
+++ b/pkgs/applications/graphics/image_optim/Gemfile.lock
@@ -0,0 +1,23 @@
+GEM
+ remote: https://rubygems.org/
+ specs:
+ exifr (1.3.6)
+ fspath (3.1.0)
+ image_optim (0.26.3)
+ exifr (~> 1.2, >= 1.2.2)
+ fspath (~> 3.0)
+ image_size (>= 1.5, < 3)
+ in_threads (~> 1.3)
+ progress (~> 3.0, >= 3.0.1)
+ image_size (2.0.0)
+ in_threads (1.5.1)
+ progress (3.5.0)
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ image_optim
+
+BUNDLED WITH
+ 1.16.3
diff --git a/pkgs/applications/graphics/image_optim/default.nix b/pkgs/applications/graphics/image_optim/default.nix
new file mode 100644
index 000000000000..d4ac2ac8a2f6
--- /dev/null
+++ b/pkgs/applications/graphics/image_optim/default.nix
@@ -0,0 +1,68 @@
+{ lib, bundlerApp, fetchurl, ruby, makeWrapper,
+ withPngcrush ? true, pngcrush ? null,
+ withPngout ? true, pngout ? null,
+ withAdvpng ? true, advancecomp ? null,
+ withOptipng ? true, optipng ? null,
+ withPngquant ? true, pngquant ? null,
+ withJhead ? true, jhead ? null,
+ withJpegoptim ? true, jpegoptim ? null,
+ withJpegrecompress ? true, jpeg-archive ? null,
+ withJpegtran ? true, libjpeg ? null,
+ withGifsicle ? true, gifsicle ? null,
+ withSvgo ? true, svgo ? null
+}:
+
+assert withPngcrush -> pngcrush != null;
+assert withPngout -> pngout != null;
+assert withAdvpng -> advancecomp != null;
+assert withOptipng -> optipng != null;
+assert withPngquant -> pngquant != null;
+assert withJhead -> jhead != null;
+assert withJpegoptim -> jpegoptim != null;
+assert withJpegrecompress -> jpeg-archive != null;
+assert withJpegtran -> libjpeg != null;
+assert withGifsicle -> gifsicle != null;
+assert withSvgo -> svgo != null;
+
+with lib;
+
+let
+ optionalDepsPath = makeBinPath (
+ []
+ ++ optional withPngcrush pngcrush
+ ++ optional withPngout pngout
+ ++ optional withAdvpng advancecomp
+ ++ optional withOptipng optipng
+ ++ optional withPngquant pngquant
+ ++ optional withJhead jhead
+ ++ optional withJpegoptim jpegoptim
+ ++ optional withJpegrecompress jpeg-archive
+ ++ optional withJpegtran libjpeg
+ ++ optional withGifsicle gifsicle
+ ++ optional withSvgo svgo
+ );
+in
+
+bundlerApp {
+ pname = "image_optim";
+ gemdir = ./.;
+
+ inherit ruby;
+
+ exes = [ "image_optim" ];
+
+ buildInputs = [ makeWrapper ];
+
+ postBuild = ''
+ wrapProgram $out/bin/image_optim \
+ --prefix PATH : ${optionalDepsPath}
+ '';
+
+ meta = with lib; {
+ description = "Command line tool and ruby interface to optimize (lossless compress, optionally lossy) jpeg, png, gif and svg images using external utilities (advpng, gifsicle, jhead, jpeg-recompress, jpegoptim, jpegrescan, jpegtran, optipng, pngcrush, pngout, pngquant, svgo)";
+ homepage = http://github.com/toy/image_optim;
+ license = licenses.mit;
+ maintainers = with maintainers; [ srghma ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/applications/graphics/image_optim/gemset.nix b/pkgs/applications/graphics/image_optim/gemset.nix
new file mode 100644
index 000000000000..6c9ec2de7457
--- /dev/null
+++ b/pkgs/applications/graphics/image_optim/gemset.nix
@@ -0,0 +1,51 @@
+{
+ exifr = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0q2abhiyvgfv23i0izbskjxcqaxiw9bfg6s57qgn4li4yxqpwpfg";
+ type = "gem";
+ };
+ version = "1.3.6";
+ };
+ fspath = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1vjn9sy4hklr2d5wxmj5x1ry31dfq3sjp779wyprb3nbbdmra1sc";
+ type = "gem";
+ };
+ version = "3.1.0";
+ };
+ image_optim = {
+ dependencies = ["exifr" "fspath" "image_size" "in_threads" "progress"];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "082w9qcyy9j6m6s2pknfdcik7l2qch4j48axs13m06l4s1hz0dmg";
+ type = "gem";
+ };
+ version = "0.26.3";
+ };
+ image_size = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "0bcn7nc6qix3w4sf7xd557lnsgjniqa7qvz7nnznx70m8qfbc7ig";
+ type = "gem";
+ };
+ version = "2.0.0";
+ };
+ in_threads = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "14hqm59sgqi91ag187zwpgwi58xckjkk58m031ghkp0csl8l9mkx";
+ type = "gem";
+ };
+ version = "1.5.1";
+ };
+ progress = {
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "1yrzq4v5sp7cg4nbgqh11k3d1czcllfz98dcdrxrsjxwq5ziiw0p";
+ type = "gem";
+ };
+ version = "3.5.0";
+ };
+} \ No newline at end of file
diff --git a/pkgs/applications/graphics/image_optim/update.sh b/pkgs/applications/graphics/image_optim/update.sh
new file mode 100755
index 000000000000..8afd7f90436d
--- /dev/null
+++ b/pkgs/applications/graphics/image_optim/update.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p bundix bundler
+
+SCRIPT_DIR=$(dirname "$(readlink -f "$BASH_SOURCE")")
+
+cd $SCRIPT_DIR
+
+bundle lock --update
+bundix