diff options
author | Erich Eckner <git@eckner.net> | 2019-03-25 12:08:37 +0100 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2019-03-25 12:08:37 +0100 |
commit | aec37e67c6702dee48e30758d024bd6d95044a94 (patch) | |
tree | ccbc9fe424ed30106fb8ae1eb2f49ace486e4346 | |
parent | 8a36d974e574781662cc87805c8a8a4717266a5f (diff) | |
download | dmarc-aggregate-viewer-aec37e67c6702dee48e30758d024bd6d95044a94.tar.xz |
bin/extract-attachment: also correctly extract attachments from non-multipart messages
-rwxr-xr-x | bin/extract-attachment | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/bin/extract-attachment b/bin/extract-attachment index b28a691..b8824b2 100755 --- a/bin/extract-attachment +++ b/bin/extract-attachment @@ -15,12 +15,19 @@ last_line=$( | tail -n1 ) -borders=$( - printf '%s\n' "${cnt}" \ - | grep -nxF -- "${last_line%--}" \ - | cut -d: -f1 - printf '%s\n' '$' -) +if [ -z "${last_line##*--}" ]; then + borders=$( + printf '%s\n' "${cnt}" \ + | grep -nxF -- "${last_line%--}" \ + | cut -d: -f1 + printf '%s\n' '$' + ) +else + borders=$( + printf '%s\n' '1' '$' + ) + last_line="${last_line}qwertzuiop" +fi start='' decode=false @@ -30,7 +37,7 @@ for end in ${borders}; do printf '%s\n' "${cnt}" \ | sed -n " ${start} d - ${end} d + ${end} { /^${last_line}\$/ d } ${start},${end} p " \ | sed ' |