#!/bin/ksh -e # needs converters/qprint # mutt: macro pager,attach \cs "cat > /tmp/muttpatch.diff~/.mutt/scripts/apply_patch.sh /tmp/muttpatch.diff" clear printf '\n---------------------------------------------------------------------\n' grep -E 'Subject: |^Index|^RCS|^diff --git|^file +|^[-+]{3} ' "${1}" printf '---------------------------------------------------------------------\n\n' printf "Base path for the patch?\n" printf "Example: /usr/ports or /usr/src\n" printf ": " read -r _path cd $_path print "Using: $_path" printf "Fix quoted-printable mangeled patch? [y/N]: " read -r _qprint case ${_qprint} in [y|Y]) _catcmd="qprint -d"; ;; *) _catcmd="cat"; ;; esac printf "Strip? [0]: " read -r _strip echo "CMD: ${_catcmd} "${1}" | doas -u sdk patch -E -pp${_strip:=0} -d ${_path}" ${_catcmd} "${1}" | doas -u sdk patch -E -N -p${_strip:=0} -d ${_path} echo ${_path} | xclip echo "done." read