From owner-svn-ports-all@freebsd.org Sat Mar 6 19:46:19 2021 Return-Path: Delivered-To: svn-ports-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 152645712E7; Sat, 6 Mar 2021 19:46:19 +0000 (UTC) (envelope-from 0mp@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4DtFTl02zTz4lf5; Sat, 6 Mar 2021 19:46:19 +0000 (UTC) (envelope-from 0mp@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E8330CE3; Sat, 6 Mar 2021 19:46:18 +0000 (UTC) (envelope-from 0mp@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id 126JkIPB069020; Sat, 6 Mar 2021 19:46:18 GMT (envelope-from 0mp@FreeBSD.org) Received: (from 0mp@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id 126JkHUq069015; Sat, 6 Mar 2021 19:46:17 GMT (envelope-from 0mp@FreeBSD.org) Message-Id: <202103061946.126JkHUq069015@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: 0mp set sender to 0mp@FreeBSD.org using -f From: Mateusz Piotrowski <0mp@FreeBSD.org> Date: Sat, 6 Mar 2021 19:46:17 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r567514 - in head/shells: . modernish X-SVN-Group: ports-head X-SVN-Commit-Author: 0mp X-SVN-Commit-Paths: in head/shells: . modernish X-SVN-Commit-Revision: 567514 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 06 Mar 2021 19:46:19 -0000 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 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