#!/bin/sh -euf # # DPP - Bonus shell implementation. # # Copyright (c) 2026 Dylan Araps # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell # copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in all # copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. # : "${DPP_EOF_MARKER:=___DPPEOFMARKER___}" : "${DPP_SHELL:=/bin/sh}" { echo "#!$DPP_SHELL" echo "# This file has been generated by dylanaraps/dpp." echo "(set -euo pipefail 2>/dev/null) && set -eo pipefail || set -eu" echo "export DPP_VERSION=1.0.1" echo "export DPP_LEVEL=\$((DPP_LEVEL + 1))" echo "set -- $*" echo "${DPP_INCLUDE:+. \""$DPP_INCLUDE"\"}" while IFS= read -r l; do case $l in "${DPP_BLOCK:=!!}"*) case ${b:-0} in 2) echo "$DPP_EOF_MARKER" b=0 esac l=${l#"$DPP_BLOCK"} case $l in '') b=$((!b)) ;; " "*) b=0 l=${l#?} ;; *) b=0 ;; esac echo "$l" ;; *) case $l in *\\) l=$l\\; esac case ${b:-0} in 0) echo "\${DPP_CAT:=cat} << $DPP_EOF_MARKER" b=2 esac echo "$l" esac done case $b in 1) echo "error: DPP_BLOCK not closed" >&2; exit 1 ;; 2) echo "$DPP_EOF_MARKER" ;; esac } | case ${0##*/} in dpp-compile) cat ;; *) "$DPP_SHELL" ;; esac