summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorBrice Waegeneire <brice@waegenei.re>2021-06-13 09:37:31 +0200
committerBrice Waegeneire <brice@waegenei.re>2021-06-19 22:02:50 +0200
commit9fd9364492b95baf48baf054a326145fde5bc21b (patch)
tree144e6151eb570439a08c3d945b94929663cbea3a /gnu/packages
parent0a90bea34d76ea4cd51aea61876218d059830045 (diff)
downloadguix-9fd9364492b95baf48baf054a326145fde5bc21b.tar.gz
gnu: Add duc.
* gnu/packages/disk.scm (duc): New variable.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/disk.scm52
1 files changed, 52 insertions, 0 deletions
diff --git a/gnu/packages/disk.scm b/gnu/packages/disk.scm
index ccda71b268..2a4dbee748 100644
--- a/gnu/packages/disk.scm
+++ b/gnu/packages/disk.scm
@@ -20,6 +20,7 @@
 ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
 ;;; Copyright © 2021 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2021 Mathieu Othacehe <othacehe@gnu.org>
+;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -46,6 +47,7 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
   #:use-module (gnu packages cryptsetup)
+  #:use-module (gnu packages databases)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages elf)
@@ -1303,3 +1305,53 @@ like raw system image files, can be copied or flashed a lot faster and more
 reliably with @code{bmaptool} than with traditional tools, like @code{dd} or
 @code{cp}.")
     (license license:gpl2)))
+
+(define-public duc
+  (package
+    (name "duc")
+    (version "1.4.4")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/zevv/duc")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1i7ry25xzy027g6ysv6qlf09ax04q4vy0kikl8h0aq5jbxsl9q52"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (substitute* "src/duc/cmd-ui.c"
+                 (("ncursesw/ncurses.h") "ncurses.h"))
+               (substitute* "examples/index.cgi"
+                 (("/usr/local/bin/duc")
+                  (string-append out "/bin/duc"))))))
+         (add-after 'install 'install-examples
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (string-append out "/share/doc/" ,name "-" ,version)))
+               (copy-recursively "examples" (string-append doc "/examples"))))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("cairo" ,cairo)
+       ("pango" ,pango)
+       ("tokyocabinet" ,tokyocabinet)
+       ("ncurses" ,ncurses)))
+    (home-page "http://duc.zevv.nl")
+    (synopsis "Library and suite of tools for inspecting disk usage")
+    (description "Duc maintains a database of accumulated sizes of
+directories of the file system, and allows you to query this database with
+some tools, or create fancy graphs showing you where your bytes are.
+
+Duc comes with console utilities, ncurses and X11 user interfaces and a CGI
+wrapper for disk usage querying and visualisation.")
+    (license license:lgpl3+)))