Date: Sat, 6 Mar 2021 19:46:17 +0000 (UTC) From: Mateusz Piotrowski <0mp@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r567514 - in head/shells: . modernish Message-ID: <202103061946.126JkHUq069015@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: 0mp Date: Sat Mar 6 19:46:17 2021 New Revision: 567514 URL: https://svnweb.freebsd.org/changeset/ports/567514 Log: 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 Added: head/shells/modernish/ head/shells/modernish/Makefile (contents, props changed) head/shells/modernish/distinfo (contents, props changed) head/shells/modernish/pkg-descr (contents, props changed) head/shells/modernish/pkg-plist (contents, props changed) Modified: head/shells/Makefile Modified: head/shells/Makefile ============================================================================== --- head/shells/Makefile Sat Mar 6 18:57:24 2021 (r567513) +++ head/shells/Makefile Sat Mar 6 19:46:17 2021 (r567514) @@ -31,6 +31,7 @@ SUBDIR += ksh93 SUBDIR += ksh93-devel SUBDIR += mksh + SUBDIR += modernish SUBDIR += nologinmsg SUBDIR += ohmyzsh SUBDIR += oksh Added: head/shells/modernish/Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/shells/modernish/Makefile Sat Mar 6 19:46:17 2021 (r567514) @@ -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> Added: head/shells/modernish/distinfo ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/shells/modernish/distinfo Sat Mar 6 19:46:17 2021 (r567514) @@ -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 Added: head/shells/modernish/pkg-descr ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/shells/modernish/pkg-descr Sat Mar 6 19:46:17 2021 (r567514) @@ -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 Added: head/shells/modernish/pkg-plist ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/shells/modernish/pkg-plist Sat Mar 6 19:46:17 2021 (r567514) @@ -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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202103061946.126JkHUq069015>