36 lines
965 B
Bash
36 lines
965 B
Bash
|
#!/bin/ksh -e
|
||
|
|
||
|
# needs converters/qprint
|
||
|
# mutt: macro pager,attach \cs "<pipe-message>cat > /tmp/muttpatch.diff<enter><shell-escape>~/.mutt/scripts/apply_patch.sh /tmp/muttpatch.diff<enter>"
|
||
|
|
||
|
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
|