Index: head/shells/Makefile =================================================================== --- head/shells/Makefile +++ head/shells/Makefile @@ -31,6 +31,7 @@ SUBDIR += ksh93 SUBDIR += ksh93-devel SUBDIR += mksh + SUBDIR += modernish SUBDIR += nologinmsg SUBDIR += ohmyzsh SUBDIR += oksh Index: head/shells/modernish/Makefile =================================================================== --- head/shells/modernish/Makefile +++ head/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 Index: head/shells/modernish/distinfo =================================================================== --- head/shells/modernish/distinfo +++ head/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 Index: head/shells/modernish/pkg-descr =================================================================== --- head/shells/modernish/pkg-descr +++ head/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 Index: head/shells/modernish/pkg-plist =================================================================== --- head/shells/modernish/pkg-plist +++ head/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