git: 05e3a02e1fc8 - main - New port: sysutils/discus: Similar to df but nicer output

Rainer Hurling rhurlin at FreeBSD.org
Wed Apr 28 19:09:25 UTC 2021


The branch main has been updated by rhurlin:

URL: https://cgit.FreeBSD.org/ports/commit/?id=05e3a02e1fc88ccf60655d50f32f372372ba6bbb

commit 05e3a02e1fc88ccf60655d50f32f372372ba6bbb
Author:     Chris Moerz <freebsd at ny-central.org>
AuthorDate: 2021-04-28 19:06:14 +0000
Commit:     Rainer Hurling <rhurlin at FreeBSD.org>
CommitDate: 2021-04-28 19:06:14 +0000

    New port: sysutils/discus: Similar to df but nicer output
    
    Changelog: https://github.com/ncarrier/discus/blob/master/changelog
    
    PR:             255442
---
 sysutils/discus/Makefile              | 32 ++++++++++++++++++++++++
 sysutils/discus/distinfo              |  3 +++
 sysutils/discus/files/patch-README.md | 36 +++++++++++++++++++++++++++
 sysutils/discus/files/patch-discus.1  | 43 ++++++++++++++++++++++++++++++++
 sysutils/discus/files/patch-discus.py | 47 +++++++++++++++++++++++++++++++++++
 sysutils/discus/files/patch-discusrc  | 25 +++++++++++++++++++
 sysutils/discus/pkg-descr             | 13 ++++++++++
 sysutils/discus/pkg-plist             |  5 ++++
 8 files changed, 204 insertions(+)

diff --git a/sysutils/discus/Makefile b/sysutils/discus/Makefile
new file mode 100644
index 000000000000..9e0d121f42a4
--- /dev/null
+++ b/sysutils/discus/Makefile
@@ -0,0 +1,32 @@
+PORTNAME=	discus
+DISTVERSION=	0.4.0
+CATEGORIES=	sysutils
+
+MAINTAINER=	freebsd at ny-central.org
+COMMENT=	Discus is a program to display hard drive space usage
+
+LICENSE=	GPLv2
+
+USES=		python:3.6+ shebangfix
+USE_GITHUB=	yes
+GH_ACCOUNT=	ncarrier
+
+SHEBANG_FILES=	discus.py
+
+NO_BUILD=	yes
+
+OPTIONS_DEFINE=	DOCS
+
+do-install:
+	${MKDIR} ${STAGEDIR}/${ETCDIR}/
+	${MKDIR} ${STAGEDIR}/${DOCSDIR}
+	${MKDIR} ${STAGEDIR}/${PREFIX}/sbin
+	${INSTALL_DATA} ${WRKSRC}/discusrc ${STAGEDIR}/${ETCDIR}/discusrc.sample
+	${INSTALL_MAN} ${WRKSRC}/discus.1 ${STAGEDIR}/${MANPREFIX}/man/man1
+	${INSTALL_SCRIPT} ${WRKSRC}/discus.py ${STAGEDIR}/${PREFIX}/sbin/discus
+
+do-install-DOCS-on:
+	${INSTALL_MAN} ${WRKSRC}/README.md ${STAGEDIR}/${DOCSDIR}
+	${INSTALL_MAN} ${WRKSRC}/AUTHORS ${STAGEDIR}/${DOCSDIR}
+
+.include <bsd.port.mk>
diff --git a/sysutils/discus/distinfo b/sysutils/discus/distinfo
new file mode 100644
index 000000000000..e5db97b5fe4b
--- /dev/null
+++ b/sysutils/discus/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1619608755
+SHA256 (ncarrier-discus-0.4.0_GH0.tar.gz) = bf9b9e94da6751a9b9f849b44d65cd7809e5d4814ac24f67353c70f09f743485
+SIZE (ncarrier-discus-0.4.0_GH0.tar.gz) = 16392
diff --git a/sysutils/discus/files/patch-README.md b/sysutils/discus/files/patch-README.md
new file mode 100644
index 000000000000..9a2ff6a32508
--- /dev/null
+++ b/sysutils/discus/files/patch-README.md
@@ -0,0 +1,36 @@
+--- README.md.orig	2021-04-26 14:05:27 UTC
++++ README.md
+@@ -11,9 +11,9 @@ Features include color, bar graphs, and smart formatti
+ gigabytes, or terabytes). Or choose your own size, along with specifying the
+ number of decimal places you'd like to see.
+ 
+-To configure Discus on a system-wide basis, edit the **/etc/discusrc** file.
++To configure Discus on a system-wide basis, edit the **/usr/local/etc/discusrc** file.
+ But you should probably change things just for yourself, by copying
+-**/etc/discusrc** to **~/.discusrc** and editing that.
++**/usr/local/etc/discusrc** to **~/.discusrc** and editing that.
+ 
+ The source code is contained in the discus.py file itself, as it is a Python
+ code encapsulated in a shell script.
+@@ -52,13 +52,14 @@ for more information.
+ ## Installation
+ 
+ ```
+-cp discus.py /usr/local/bin
+-chmod a+rx /usr/local/bin/discus
+-cp discusrc /etc
+-chmod a+r /etc/discusrc
+-gzip -9 discus.1
+-cp discus.1.gz /usr/local/man/man1
+-chmod a+r /usr/local/man/man1/discus.1.gz
++pkg install discus
++```
++
++or
++
++```
++cd /usr/ports/sysutils/discus
++make install; make clean
+ ```
+ 
+ ## Test
diff --git a/sysutils/discus/files/patch-discus.1 b/sysutils/discus/files/patch-discus.1
new file mode 100644
index 000000000000..a584b8016503
--- /dev/null
+++ b/sysutils/discus/files/patch-discus.1
@@ -0,0 +1,43 @@
+--- discus.1.orig	2020-04-13 07:05:40 UTC
++++ discus.1
+@@ -2,7 +2,7 @@
+ .\" DISCUS
+ .\" 1
+ .\" other parameters are allowed: see man(7), man(1)
+-.TH DISCUS 1 "October 20, 2003"
++.TH DISCUS 1 "April 26, 2021"
+ .\" Please adjust this date whenever revising the manpage.
+ .\"
+ .\" Some roff macros, for reference:
+@@ -26,9 +26,8 @@ discus \- print a report of disk space usage
+ and smart formatting of numbers (automatically choosing the most suitable
+ size from kilobytes, megabytes, gigabytes, or terabytes). Or choose your
+ own size, along with specifying the number of decimal places you'd like to
+-see. You may also copy /etc/discusrc to $HOME/.discusrc and customize things to
+-your preference.
+-
++see. You may also copy /usr/local/etc/discus/discusrc to $HOME/.discusrc and 
++customize things to your preference.
+ .SH OPTIONS
+ .TP
+ .B \-h, \-\-help
+@@ -56,14 +55,15 @@ Show version of program.
+ .B \-r
+ Takes into account even the reserved space to root; it will be counted in percentage and in available columns only (Used is for real used space).
+ .SH FILES
+-.SH FILES
+-.BR /etc/discusrc,
++.BR /usr/local/etc/discus/discusrc,
+ .BR $HOME/.discusrc
+ .SH SEE ALSO
+-.BR df (1),
+-.BR pydf (1).
++df(1)
+ .br
+ .SH AUTHOR
+ This manual page was adapted by Ron Farrer <rbf at debian.org> from one
+ written by Stormy Henderson <stormy at raincrazy.com> for the Debian
+ GNU/Linux system (but may be used by others).
++
++This manual page was later updated by Chris Moerz <freebsd at ny-central.org>
++for FreeBSD.
diff --git a/sysutils/discus/files/patch-discus.py b/sysutils/discus/files/patch-discus.py
new file mode 100644
index 000000000000..9c9051e4efc6
--- /dev/null
+++ b/sysutils/discus/files/patch-discus.py
@@ -0,0 +1,47 @@
+--- discus.py.orig	2020-04-13 07:05:40 UTC
++++ discus.py
+@@ -437,16 +437,8 @@ def read_mounts(mtab, skip_list):
+     """Read the mounts file."""
+     mounts = []
+ 
+-    # If the first letter of the mtab file begins with a !, it is a
+-    # shell command to be executed, and not a file to be read.  Idea
+-    # provided by John Soward.
+-    if mtab[0] == "!":
+-        mtab = subprocess.getoutput(mtab[1:])
+-        mtab = str.split(mtab, "\n")
+-    else:
+-        fp = open(mtab)
+-        mtab = fp.readlines()
+-        fp.close()
++    mtab = subprocess.getoutput('/sbin/mount -p')
++    mtab = str.split(mtab, "\n")
+ 
+     # Extract the mounted filesystems from the read file.
+     for entry in mtab:
+@@ -534,7 +526,7 @@ def get_layout(headers, reports):
+ def main():
+     """Define main program."""
+     parse_options()
+-    mounts = read_mounts(opts["mtab"], opts["skip_list"])
++    mounts = read_mounts(None, opts["skip_list"])
+     headers = get_header(opts["graph"])
+     stats_factory = StatsFactory(opts["reserved"])
+     size_formatter = SizeFormatter(opts["smart"], opts["placing"],
+@@ -559,13 +551,13 @@ def main():
+ 
+ if __name__ == "__main__":
+     # Before starting, we need to load the configuration files which
+-    # contain global objects.  First the global /etc file, then the user's
++    # contain global objects.  First the global /usr/local/etc file, then the user's
+     # file, if exists.
+     try:
+-        exec(compile(open("/etc/discusrc", "rb").read(), "/etc/discusrc",
++        exec(compile(open("/usr/local/etc/discus/discusrc", "rb").read(), "/usr/local/etc/discus/discusrc",
+              'exec'))
+     except IOError:
+-        usage(EX_CONFIG, "/etc/discusrc must exist and be readable.")
++        usage(EX_CONFIG, "/usr/local/etc/discus/discusrc must exist and be readable.")
+ 
+     try:
+         exec(compile(open(os.environ['HOME'] + "/.discusrc", "rb").read(),
diff --git a/sysutils/discus/files/patch-discusrc b/sysutils/discus/files/patch-discusrc
new file mode 100644
index 000000000000..74647e6e275b
--- /dev/null
+++ b/sysutils/discus/files/patch-discusrc
@@ -0,0 +1,25 @@
+--- discusrc.orig	2021-04-27 15:52:50 UTC
++++ discusrc
+@@ -17,11 +17,6 @@ opts["graph"] = 1
+ opts["graph_char"] = "*"
+ opts["graph_fill"] = "-"
+ 
+-##  Example mtab entry that uses a shell command (always use a ! as
+-##  first character) rather than a file:
+-##	opts["mtab"] = "!/bin/mount |awk '{print $1, $3}'"
+-opts["mtab"] = "/etc/mtab"
+-
+ ##  Number of decimal places to display, same as -p
+ opts["places"] = 1
+ 
+@@ -30,10 +25,6 @@ opts["skip_list"] = ["/dev/pts", "/proc", "/dev", "/pr
+ 
+ ##  Use smart formatting of numbers.
+ opts["smart"] = 1
+-
+-##  Location of stat program in lieu of Python's statvfs module.
+-# Deprecated starting from version 0.3.0
+-#opts["stat_prog"] = "stat -ft"
+ 
+ ##  These colors should work on VT100-type displays.  Change them if you use
+ ##  something else.
diff --git a/sysutils/discus/pkg-descr b/sysutils/discus/pkg-descr
new file mode 100644
index 000000000000..fcf9cca358b9
--- /dev/null
+++ b/sysutils/discus/pkg-descr
@@ -0,0 +1,13 @@
+Discus is a program to display hard drive space usage, much like the standard
+UNIX command df.
+
+Discus aims to make df(1) prettier. Features include color, bar graphs, and
+smart formatting of numbers (automatically choosing the most suitable size
+from kilobytes, megabytes, gigabytes, or terabytes). Or choose your own size,
+along with specifying the number of decimal places you'd like to see.
+
+To configure Discus on a system-wide basis, edit the /usr/local/etc/discusrc
+file. But you should probably change things just for yourself, by copying
+/usr/local/etc/discusrc to ~/.discusrc and editing that.
+
+WWW: https://github.com/ncarrier/discus
diff --git a/sysutils/discus/pkg-plist b/sysutils/discus/pkg-plist
new file mode 100644
index 000000000000..feef3e0f7c5c
--- /dev/null
+++ b/sysutils/discus/pkg-plist
@@ -0,0 +1,5 @@
+ at sample %%ETCDIR%%/discusrc.sample
+man/man1/discus.1.gz
+sbin/discus
+%%PORTDOCS%%%%DOCSDIR%%/AUTHORS
+%%PORTDOCS%%%%DOCSDIR%%/README.md


More information about the dev-commits-ports-all mailing list