gnu: Add inxi.

* gnu/packages/admin.scm (inxi): New variable.

Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com>
This commit is contained in:
Pierre Neidhardt 2018-04-16 18:08:30 +05:30 committed by Oleg Pykhalov
parent a288ab1f39
commit bbc94ed03a
No known key found for this signature in database
GPG key ID: 7246E11C69B79569

View file

@ -50,8 +50,11 @@ (define-module (gnu packages admin)
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages cyrus-sasl)
#:use-module (gnu packages dns)
#:use-module (gnu packages file)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages readline)
#:use-module (gnu packages linux)
@ -70,6 +73,7 @@ (define-module (gnu packages admin)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages bison)
#:use-module (gnu packages flex)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages openldap)
#:use-module (gnu packages mcrypt)
@ -97,7 +101,8 @@ (define-module (gnu packages admin)
#:use-module (gnu packages xml)
#:use-module (gnu packages boost)
#:use-module (gnu packages elf)
#:use-module (gnu packages mpi))
#:use-module (gnu packages mpi)
#:use-module (gnu packages web))
(define-public aide
(package
@ -2652,3 +2657,117 @@ (define-public spindle
;; This package supports x86_64 and PowerPC64
(supported-systems '("x86_64-linux"))
(license license:lgpl2.1)))
(define-public inxi-minimal
(let ((real-name "inxi"))
(package
(name "inxi-minimal")
(version "3.0.04-1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/smxi/inxi"
"/archive/" version "/inxi.tar.gz"))
(file-name (string-append real-name "-" version ".tar.gz"))
(sha256
(base32
"14zxdsjgh9dbijmpp0hhvg2yiqqfwnqgcc6x8dpl1v15z1h1r7pc"))))
(build-system trivial-build-system)
(inputs
`(("bash" ,bash)
("perl" ,perl)))
(native-inputs
`(("gzip" ,gzip)
("tar" ,tar)))
(arguments
`(#:modules
((guix build utils)
(ice-9 match)
(srfi srfi-26))
#:builder
(begin
(use-modules (guix build utils)
(ice-9 match)
(srfi srfi-26))
(setenv "PATH" (string-append
(assoc-ref %build-inputs "bash") "/bin" ":"
(assoc-ref %build-inputs "gzip") "/bin" ":"
(assoc-ref %build-inputs "perl") "/bin" ":"
(assoc-ref %build-inputs "tar") "/bin" ":"))
(invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
(with-directory-excursion ,(string-append real-name "-" version)
(with-fluids ((%default-port-encoding #f))
(substitute* "inxi" (("/usr/bin/env perl") (which "perl"))))
(let ((bin (string-append %output "/bin")))
(install-file "inxi" bin)
(wrap-program (string-append bin "/inxi")
`("PATH" ":" =
("$PATH"
,@(map (lambda (input)
(match input
((name . store)
(let ((store-append
(cut string-append store <>)))
(cond
((member name '("util-linux"))
(string-append (store-append "/bin") ":"
(store-append "/sbin")))
((member name '("dmidecode" "iproute2"))
(store-append "/sbin"))
(else (store-append "/bin")))))))
%build-inputs)))
`("PERL5LIB" ":" =
,(delete
""
(map (match-lambda
(((? (cut string-prefix? "perl-" <>) name) . dir)
(string-append dir "/lib/perl5/site_perl"))
(_ ""))
%build-inputs)))))
(invoke "gzip" "inxi.1")
(install-file "inxi.1.gz"
(string-append %output "/share/doc/man/man1")))
#t)))
(home-page "https://smxi.org/docs/inxi.htm")
(synopsis "Full featured system information script")
(description "Inxi is a system information script that can display
various things about your hardware and software to users in an IRC chatroom or
support forum. It runs with the /exec command in most IRC clients.")
(license license:gpl3+))))
(define-public inxi
(package
(inherit inxi-minimal)
(name "inxi")
(inputs
`(("dmidecode" ,dmidecode)
("file" ,file)
("bind:utils" ,isc-bind "utils") ; dig
("gzip" ,gzip)
("iproute2" ,iproute) ; ip
("kmod" ,kmod) ; modinfo
("lm-sensors" ,lm-sensors)
("mesa-utils" ,mesa-utils)
("pciutils" ,pciutils)
("procps" ,procps)
("tar" ,tar)
("tree" ,tree)
("util-linux" ,util-linux) ; lsblk
("usbutils" ,usbutils) ; lsusb
("wmctrl" ,wmctrl)
("xdpyinfo" ,xdpyinfo)
("xprop" ,xprop)
("xrandr" ,xrandr)
("coreutils" ,coreutils) ; uptime
("inetutils" ,inetutils) ; ifconfig
("perl-cpanel-json-xs" ,perl-cpanel-json-xs)
("perl-http-tiny" ,perl-http-tiny)
("perl-io-socket-ssl" ,perl-io-socket-ssl)
("perl-json-xs" ,perl-json-xs)
("perl-time-hires" ,perl-time-hires)
;; TODO: Add more inputs:
;; ipmi-sensors
;; hddtemp
;; perl-xml-dumper
;; ipmitool
,@(package-inputs inxi-minimal)))))