aboutsummaryrefslogtreecommitdiff
path: root/shells
diff options
context:
space:
mode:
authorMateusz Piotrowski <0mp@FreeBSD.org>2021-03-06 19:46:17 +0000
committerMateusz Piotrowski <0mp@FreeBSD.org>2021-03-06 19:46:17 +0000
commit147c8ae4e6031ba4d3c11f717c57afc6919d478e (patch)
treeb5c873baf5c9a078d0276933620e51c1c68803db /shells
parenteeae651245e82778df25721005d7f10d7b8929e2 (diff)
downloadports-147c8ae4e6031ba4d3c11f717c57afc6919d478e.tar.gz
ports-147c8ae4e6031ba4d3c11f717c57afc6919d478e.zip
Add shells/modernish
The programming/scripting language that incorporates the most frustrating combination of deficiencies and awesome power is probably the POSIX shell with accompanying utilities, which all exist in several variant implementations. Due to said power, the shell refuses to die as a scripting language. But when scripters are bitten by arcane grammar pitfalls, defective tutorials on the web, or shell functionality deficits, then 'use a real programming language instead' is generally the mantra. Enter modernish, a new vision on shell scripting. Modernish aims to provide a standard library that allows for writing robust, portable, readable, and powerful programs for POSIX-based shells and utilities. It can solve the shell language problems mentioned above, and many more. With modernish, you'd almost think the shell has become a modern programming language! The library builds on the POSIX 2018 Edition standard, so it should run on any sufficiently POSIX-compliant shell and operating system. But it also takes advantage of certain shell-specific enhancements if it detects them. WWW: https://github.com/modernish/modernish Differential Revision: https://reviews.freebsd.org/D19350
Notes
Notes: svn path=/head/; revision=567514
Diffstat (limited to 'shells')
-rw-r--r--shells/Makefile1
-rw-r--r--shells/modernish/Makefile30
-rw-r--r--shells/modernish/distinfo3
-rw-r--r--shells/modernish/pkg-descr19
-rw-r--r--shells/modernish/pkg-plist271
5 files changed, 324 insertions, 0 deletions
diff --git a/shells/Makefile b/shells/Makefile
index e5bf1f4012ef..998b25b7ec7f 100644
--- a/shells/Makefile
+++ b/shells/Makefile
@@ -31,6 +31,7 @@
SUBDIR += ksh93
SUBDIR += ksh93-devel
SUBDIR += mksh
+ SUBDIR += modernish
SUBDIR += nologinmsg
SUBDIR += ohmyzsh
SUBDIR += oksh
diff --git a/shells/modernish/Makefile b/shells/modernish/Makefile
new file mode 100644
index 000000000000..07b06d91c955
--- /dev/null
+++ b/shells/modernish/Makefile
@@ -0,0 +1,30 @@
+# $FreeBSD$
+
+PORTNAME= modernish
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.16.5
+CATEGORIES= shells
+
+MAINTAINER= 0mp@FreeBSD.org
+COMMENT= POSIX shell feature detection and language extension library
+
+LICENSE= ISCL
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+USE_GITHUB= yes
+
+NO_ARCH= yes
+NO_BUILD= yes
+
+OPTIONS_DEFINE= DOCS EXAMPLES
+
+do-install:
+ cd ${WRKSRC} && \
+ ${SETENV} ${MAKE_ENV} ./install.sh -d ${PREFIX} -D ${STAGEDIR} -n -s ${SH}
+
+ ${RM} ${STAGEDIR}${DOCSDIR}/LICENSE
+ ${MKDIR} ${STAGEDIR}${EXAMPLESDIR:H}
+ ${MV} ${STAGEDIR}${DOCSDIR}/examples ${STAGEDIR}${EXAMPLESDIR}
+ ${RLN} ${STAGEDIR}${EXAMPLESDIR} ${STAGEDIR}${DOCSDIR}/examples
+
+.include <bsd.port.mk>
diff --git a/shells/modernish/distinfo b/shells/modernish/distinfo
new file mode 100644
index 000000000000..d463e9df3eec
--- /dev/null
+++ b/shells/modernish/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1615056285
+SHA256 (modernish-modernish-v0.16.5_GH0.tar.gz) = 0964bbe0fe0b24eecf62dfbef089710358d468c1eb09e2d48008ca7753beb8e1
+SIZE (modernish-modernish-v0.16.5_GH0.tar.gz) = 342457
diff --git a/shells/modernish/pkg-descr b/shells/modernish/pkg-descr
new file mode 100644
index 000000000000..f7d7da6284a8
--- /dev/null
+++ b/shells/modernish/pkg-descr
@@ -0,0 +1,19 @@
+The programming/scripting language that incorporates the most frustrating
+combination of deficiencies and awesome power is probably the POSIX shell with
+accompanying utilities, which all exist in several variant implementations. Due
+to said power, the shell refuses to die as a scripting language. But when
+scripters are bitten by arcane grammar pitfalls, defective tutorials on the
+web, or shell functionality deficits, then 'use a real programming language
+instead' is generally the mantra.
+
+Enter modernish, a new vision on shell scripting. Modernish aims to provide a
+standard library that allows for writing robust, portable, readable, and
+powerful programs for POSIX-based shells and utilities. It can solve the shell
+language problems mentioned above, and many more. With modernish, you'd almost
+think the shell has become a modern programming language!
+
+The library builds on the POSIX 2018 Edition standard, so it should run on any
+sufficiently POSIX-compliant shell and operating system. But it also takes
+advantage of certain shell-specific enhancements if it detects them.
+
+WWW: https://github.com/modernish/modernish
diff --git a/shells/modernish/pkg-plist b/shells/modernish/pkg-plist
new file mode 100644
index 000000000000..a7b684d4bfb2
--- /dev/null
+++ b/shells/modernish/pkg-plist
@@ -0,0 +1,271 @@
+bin/modernish
+lib/modernish/aux/cap/BUG_LNNONEG.sh
+lib/modernish/aux/cap/BUG_LOOPRET3.sh
+lib/modernish/aux/cap/BUG_TRAPFNEXI.sh
+lib/modernish/aux/cap/DOTARG.sh
+lib/modernish/aux/ematch.awk
+lib/modernish/aux/fatal.sh
+lib/modernish/aux/id.sh
+lib/modernish/aux/std.sh
+lib/modernish/aux/sys/base/tac.awk
+lib/modernish/aux/sys/cmd/mapr.awk
+lib/modernish/aux/var/loop/find-ok.sh
+lib/modernish/aux/var/loop/find-path.sh
+lib/modernish/aux/var/loop/find.awk
+lib/modernish/aux/var/loop/find.sh
+lib/modernish/cap/ADDASSIGN.t
+lib/modernish/cap/ANONFUNC.t
+lib/modernish/cap/ARITHCMD.t
+lib/modernish/cap/ARITHFOR.t
+lib/modernish/cap/ARITHPP.t
+lib/modernish/cap/BUG_ALIASCSHD.t
+lib/modernish/cap/BUG_ALIASCSUB.t
+lib/modernish/cap/BUG_ALIASPOSX.t
+lib/modernish/cap/BUG_APPENDC.t
+lib/modernish/cap/BUG_ARITHINIT.t
+lib/modernish/cap/BUG_ARITHLNNO.t
+lib/modernish/cap/BUG_ARITHSPLT.t
+lib/modernish/cap/BUG_ARITHTYPE.t
+lib/modernish/cap/BUG_ASGNCC01.t
+lib/modernish/cap/BUG_ASGNLOCAL.t
+lib/modernish/cap/BUG_BRACQUOT.t
+lib/modernish/cap/BUG_CASELIT.t
+lib/modernish/cap/BUG_CASEPAREN.t
+lib/modernish/cap/BUG_CASESTAT.t
+lib/modernish/cap/BUG_CDPCANON.t
+lib/modernish/cap/BUG_CMDEXEC.t
+lib/modernish/cap/BUG_CMDEXPAN.t
+lib/modernish/cap/BUG_CMDOPTEXP.t
+lib/modernish/cap/BUG_CMDPV.t
+lib/modernish/cap/BUG_CMDSETPP.t
+lib/modernish/cap/BUG_CMDSPASGN.t
+lib/modernish/cap/BUG_CMDSPEXIT.t
+lib/modernish/cap/BUG_CMDVRESV.t
+lib/modernish/cap/BUG_CSNHDBKSL.t
+lib/modernish/cap/BUG_CSUBRMLF.t
+lib/modernish/cap/BUG_CSUBSTDO.t
+lib/modernish/cap/BUG_DEVTTY.t
+lib/modernish/cap/BUG_DOLRCSUB.t
+lib/modernish/cap/BUG_DQGLOB.t
+lib/modernish/cap/BUG_EVALCOBR.t
+lib/modernish/cap/BUG_EXPORTUNS.t
+lib/modernish/cap/BUG_FNSUBSH.t
+lib/modernish/cap/BUG_FORLOCAL.t
+lib/modernish/cap/BUG_GETOPTSMA.t
+lib/modernish/cap/BUG_HDOCBKSL.t
+lib/modernish/cap/BUG_HDOCMASK.t
+lib/modernish/cap/BUG_IFSCC01PP.t
+lib/modernish/cap/BUG_IFSGLOBC.t
+lib/modernish/cap/BUG_IFSGLOBP.t
+lib/modernish/cap/BUG_IFSGLOBS.t
+lib/modernish/cap/BUG_IFSISSET.t
+lib/modernish/cap/BUG_ISSETLOOP.t
+lib/modernish/cap/BUG_KUNSETIFS.t
+lib/modernish/cap/BUG_LNNOALIAS.t
+lib/modernish/cap/BUG_LNNOEVAL.t
+lib/modernish/cap/BUG_LNNONEG.t
+lib/modernish/cap/BUG_LOOPRET1.t
+lib/modernish/cap/BUG_LOOPRET2.t
+lib/modernish/cap/BUG_LOOPRET3.t
+lib/modernish/cap/BUG_MULTIBIFS.t
+lib/modernish/cap/BUG_NOCHCLASS.t
+lib/modernish/cap/BUG_NOEXPRO.t
+lib/modernish/cap/BUG_NOOCTAL.t
+lib/modernish/cap/BUG_NOUNSETEX.t
+lib/modernish/cap/BUG_OPTNOLOG.t
+lib/modernish/cap/BUG_PFRPAD.t
+lib/modernish/cap/BUG_PP_01.t
+lib/modernish/cap/BUG_PP_02.t
+lib/modernish/cap/BUG_PP_03.t
+lib/modernish/cap/BUG_PP_03A.t
+lib/modernish/cap/BUG_PP_03B.t
+lib/modernish/cap/BUG_PP_03C.t
+lib/modernish/cap/BUG_PP_04.t
+lib/modernish/cap/BUG_PP_04A.t
+lib/modernish/cap/BUG_PP_04D.t
+lib/modernish/cap/BUG_PP_04E.t
+lib/modernish/cap/BUG_PP_04_S.t
+lib/modernish/cap/BUG_PP_05.t
+lib/modernish/cap/BUG_PP_06.t
+lib/modernish/cap/BUG_PP_06A.t
+lib/modernish/cap/BUG_PP_07.t
+lib/modernish/cap/BUG_PP_07A.t
+lib/modernish/cap/BUG_PP_08.t
+lib/modernish/cap/BUG_PP_08B.t
+lib/modernish/cap/BUG_PP_09.t
+lib/modernish/cap/BUG_PP_10.t
+lib/modernish/cap/BUG_PP_10A.t
+lib/modernish/cap/BUG_PP_1ARG.t
+lib/modernish/cap/BUG_PP_MDIGIT.t
+lib/modernish/cap/BUG_PSUBASNCC.t
+lib/modernish/cap/BUG_PSUBBKSL1.t
+lib/modernish/cap/BUG_PSUBEMIFS.t
+lib/modernish/cap/BUG_PSUBEMPT.t
+lib/modernish/cap/BUG_PSUBIFSNW.t
+lib/modernish/cap/BUG_PSUBIFSWH.t
+lib/modernish/cap/BUG_PSUBNEWLN.t
+lib/modernish/cap/BUG_PSUBSQHD.t
+lib/modernish/cap/BUG_PSUBSQUOT.t
+lib/modernish/cap/BUG_PUTIOERR.t
+lib/modernish/cap/BUG_READWHSP.t
+lib/modernish/cap/BUG_REDIRIO.t
+lib/modernish/cap/BUG_REDIRPOS.t
+lib/modernish/cap/BUG_SCLOSEDFD.t
+lib/modernish/cap/BUG_SELECTEOF.t
+lib/modernish/cap/BUG_SELECTRPL.t
+lib/modernish/cap/BUG_SETOUTVAR.t
+lib/modernish/cap/BUG_SHIFTERR0.t
+lib/modernish/cap/BUG_SPCBILOC.t
+lib/modernish/cap/BUG_TESTERR0.t
+lib/modernish/cap/BUG_TESTERR1A.t
+lib/modernish/cap/BUG_TESTERR1B.t
+lib/modernish/cap/BUG_TESTILNUM.t
+lib/modernish/cap/BUG_TESTONEG.t
+lib/modernish/cap/BUG_TESTRMPAR.t
+lib/modernish/cap/BUG_TRAPEMPT.t
+lib/modernish/cap/BUG_TRAPEXIT.t
+lib/modernish/cap/BUG_TRAPFNEXI.t
+lib/modernish/cap/BUG_TRAPRETIR.t
+lib/modernish/cap/BUG_TRAPSUB0.t
+lib/modernish/cap/BUG_TRAPUNSRE.t
+lib/modernish/cap/BUG_UNSETUNXP.t
+lib/modernish/cap/BUG_ZSHNAMES.t
+lib/modernish/cap/BUG_ZSHNAMES2.t
+lib/modernish/cap/CESCQUOT.t
+lib/modernish/cap/DBLBRACKET.t
+lib/modernish/cap/DBLBRACKETERE.t
+lib/modernish/cap/DBLBRACKETV.t
+lib/modernish/cap/DOTARG.t
+lib/modernish/cap/HERESTR.t
+lib/modernish/cap/KSH88FUNC.t
+lib/modernish/cap/KSH93FUNC.t
+lib/modernish/cap/KSHARRAY.t
+lib/modernish/cap/LEPIPEMAIN.t
+lib/modernish/cap/LINENO.t
+lib/modernish/cap/LOCALVARS.t
+lib/modernish/cap/NONFORKSUBSH.t
+lib/modernish/cap/PRINTFV.t
+lib/modernish/cap/PROCREDIR.t
+lib/modernish/cap/PROCSUBST.t
+lib/modernish/cap/PSREPLACE.t
+lib/modernish/cap/QRK_32BIT.t
+lib/modernish/cap/QRK_ANDORBG.t
+lib/modernish/cap/QRK_APIPEMAIN.t
+lib/modernish/cap/QRK_ARITHEMPT.t
+lib/modernish/cap/QRK_ARITHWHSP.t
+lib/modernish/cap/QRK_BCDANGER.t
+lib/modernish/cap/QRK_EMPTPPFLD.t
+lib/modernish/cap/QRK_EMPTPPWRD.t
+lib/modernish/cap/QRK_EVALNOOPT.t
+lib/modernish/cap/QRK_EXECFNBI.t
+lib/modernish/cap/QRK_HDPARQUOT.t
+lib/modernish/cap/QRK_IFSFINAL.t
+lib/modernish/cap/QRK_LOCALINH.t
+lib/modernish/cap/QRK_LOCALSET.t
+lib/modernish/cap/QRK_LOCALSET2.t
+lib/modernish/cap/QRK_LOCALUNS.t
+lib/modernish/cap/QRK_LOCALUNS2.t
+lib/modernish/cap/QRK_OPTABBR.t
+lib/modernish/cap/QRK_OPTCASE.t
+lib/modernish/cap/QRK_OPTDASH.t
+lib/modernish/cap/QRK_OPTNOPRFX.t
+lib/modernish/cap/QRK_OPTULINE.t
+lib/modernish/cap/QRK_PPIPEMAIN.t
+lib/modernish/cap/QRK_SPCBIXP.t
+lib/modernish/cap/QRK_UNSETF.t
+lib/modernish/cap/RANDOM.t
+lib/modernish/cap/README.md
+lib/modernish/cap/ROFUNC.t
+lib/modernish/cap/TESTERE.t
+lib/modernish/cap/TESTO.t
+lib/modernish/cap/TRAPPRSUBSH.t
+lib/modernish/cap/TRAPZERR.t
+lib/modernish/cap/WRN_EREMBYTE.t
+lib/modernish/cap/WRN_MULTIBYTE.t
+lib/modernish/cap/WRN_NOSIGPIPE.t
+lib/modernish/mdl/_IN/opt.mm
+lib/modernish/mdl/_IN/sig.mm
+lib/modernish/mdl/safe.mm
+lib/modernish/mdl/sys/base/mktemp.mm
+lib/modernish/mdl/sys/base/readlink.mm
+lib/modernish/mdl/sys/base/rev.mm
+lib/modernish/mdl/sys/base/seq.mm
+lib/modernish/mdl/sys/base/tac.mm
+lib/modernish/mdl/sys/base/which.mm
+lib/modernish/mdl/sys/base/yes.mm
+lib/modernish/mdl/sys/cmd/extern.mm
+lib/modernish/mdl/sys/cmd/harden.mm
+lib/modernish/mdl/sys/cmd/mapr.mm
+lib/modernish/mdl/sys/cmd/procsubst.mm
+lib/modernish/mdl/sys/dir/countfiles.mm
+lib/modernish/mdl/sys/dir/mkcd.mm
+lib/modernish/mdl/sys/term/readkey.mm
+lib/modernish/mdl/var/arith/cmp.mm
+lib/modernish/mdl/var/arith/ops.mm
+lib/modernish/mdl/var/assign.mm
+lib/modernish/mdl/var/genoptparser.mm
+lib/modernish/mdl/var/local.mm
+lib/modernish/mdl/var/loop.mm
+lib/modernish/mdl/var/loop/find.mm
+lib/modernish/mdl/var/loop/for.mm
+lib/modernish/mdl/var/loop/repeat.mm
+lib/modernish/mdl/var/loop/select.mm
+lib/modernish/mdl/var/mapr.mm
+lib/modernish/mdl/var/readf.mm
+lib/modernish/mdl/var/stack/extra/clearstack.mm
+lib/modernish/mdl/var/stack/extra/printstack.mm
+lib/modernish/mdl/var/stack/extra/stackempty.mm
+lib/modernish/mdl/var/stack/extra/stacksize.mm
+lib/modernish/mdl/var/stack/trap.mm
+lib/modernish/mdl/var/string/append.mm
+lib/modernish/mdl/var/string/replacein.mm
+lib/modernish/mdl/var/string/touplow.mm
+lib/modernish/mdl/var/string/trim.mm
+lib/modernish/mdl/var/unexport.mm
+lib/modernish/tst/@sanitychecks.t
+lib/modernish/tst/arith.t
+lib/modernish/tst/builtin.t
+lib/modernish/tst/io.t
+lib/modernish/tst/is.t
+lib/modernish/tst/isset.t
+lib/modernish/tst/local.t
+lib/modernish/tst/loop_cond.t
+lib/modernish/tst/match.t
+lib/modernish/tst/posparam.t
+lib/modernish/tst/posparam_spc.t
+lib/modernish/tst/process.t
+lib/modernish/tst/run.sh
+lib/modernish/tst/shellquote.t
+lib/modernish/tst/stack.t
+lib/modernish/tst/string.t
+lib/modernish/tst/sys.t
+lib/modernish/tst/trap.t
+lib/modernish/tst/unexport.t
+%%PORTDOCS%%%%DOCSDIR%%/CODINGSTYLE
+%%PORTDOCS%%%%DOCSDIR%%/DESIGN.md
+%%PORTDOCS%%%%DOCSDIR%%/EXAMPLES.md
+%%PORTDOCS%%%%DOCSDIR%%/HELP
+%%PORTDOCS%%%%DOCSDIR%%/NEWS
+%%PORTDOCS%%%%DOCSDIR%%/README.md
+%%PORTDOCS%%%%DOCSDIR%%/examples
+%%PORTDOCS%%%%DOCSDIR%%/tests/README
+%%PORTDOCS%%%%DOCSDIR%%/tests/die-bg-test.sh
+%%PORTDOCS%%%%DOCSDIR%%/tests/harden-test.sh
+%%PORTDOCS%%%%DOCSDIR%%/tests/local-test.sh
+%%PORTDOCS%%%%DOCSDIR%%/tests/mktemp-stresstest.sh
+%%PORTDOCS%%%%DOCSDIR%%/tests/shellquote-test.sh
+%%PORTDOCS%%%%DOCSDIR%%/utils/README
+%%PORTDOCS%%%%DOCSDIR%%/utils/bundle-diff-update.sh
+%%PORTDOCS%%%%DOCSDIR%%/utils/git-restore-timestamps.sh
+%%PORTDOCS%%%%DOCSDIR%%/utils/mktoc.sh
+%%PORTDOCS%%%%DOCSDIR%%/utils/modules-unalias-update.sh
+%%PORTDOCS%%%%DOCSDIR%%/utils/showTODO.sh
+%%PORTDOCS%%%%DOCSDIR%%/utils/testshells.sh
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/README
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/copy-timestamps.sh
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/dice.sh
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/get-firefox.sh
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/procsubst.sh
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/resurrectjoe/SAMPLE_DEADJOE
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/resurrectjoe/resurrectjoe.sh
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/sort-music.sh