diff options
| author | Gregor Kleen <gkleen@yggdrasil.li> | 2022-05-04 08:35:52 +0200 |
|---|---|---|
| committer | Gregor Kleen <gkleen@yggdrasil.li> | 2022-05-04 08:35:52 +0200 |
| commit | 14003a8016ef6572a85541010e8e0b955d4bc9cd (patch) | |
| tree | fbb0cba33907fb0efceb7221cfa945d9bbffa20c /accounts/gkleen@sif/zshrc | |
| parent | 5c899cc4ab800fcb2ff5c6eb5d5a89f9ad42aac4 (diff) | |
| download | nixos-14003a8016ef6572a85541010e8e0b955d4bc9cd.tar nixos-14003a8016ef6572a85541010e8e0b955d4bc9cd.tar.gz nixos-14003a8016ef6572a85541010e8e0b955d4bc9cd.tar.bz2 nixos-14003a8016ef6572a85541010e8e0b955d4bc9cd.tar.xz nixos-14003a8016ef6572a85541010e8e0b955d4bc9cd.zip | |
...
Diffstat (limited to 'accounts/gkleen@sif/zshrc')
| -rw-r--r-- | accounts/gkleen@sif/zshrc | 80 |
1 files changed, 40 insertions, 40 deletions
diff --git a/accounts/gkleen@sif/zshrc b/accounts/gkleen@sif/zshrc index bcdc662a..712ec690 100644 --- a/accounts/gkleen@sif/zshrc +++ b/accounts/gkleen@sif/zshrc | |||
| @@ -111,7 +111,7 @@ dir() { | |||
| 111 | forceShell=false | 111 | forceShell=false |
| 112 | wormhole=false | 112 | wormhole=false |
| 113 | gitWorktree="" | 113 | gitWorktree="" |
| 114 | notmuchMsg="" | 114 | # notmuchMsg="" |
| 115 | quickserve=false | 115 | quickserve=false |
| 116 | 116 | ||
| 117 | while getopts ':t:a:s:Sd:ir:wqg:n:' arg; do | 117 | while getopts ':t:a:s:Sd:ir:wqg:n:' arg; do |
| @@ -132,7 +132,7 @@ dir() { | |||
| 132 | "r") repoUrl=${OPTARG} ;; | 132 | "r") repoUrl=${OPTARG} ;; |
| 133 | "w") wormhole=true ;; | 133 | "w") wormhole=true ;; |
| 134 | "g") gitWorktree=${OPTARG} ;; | 134 | "g") gitWorktree=${OPTARG} ;; |
| 135 | "n") notmuchMsg=${OPTARG} ;; | 135 | # "n") notmuchMsg=${OPTARG} ;; |
| 136 | "q") quickserve=true ;; | 136 | "q") quickserve=true ;; |
| 137 | *) printf "Invalid option: %s\n" $arg >&2; exit 2 ;; | 137 | *) printf "Invalid option: %s\n" $arg >&2; exit 2 ;; |
| 138 | esac | 138 | esac |
| @@ -189,56 +189,56 @@ dir() { | |||
| 189 | fi | 189 | fi |
| 190 | 190 | ||
| 191 | 191 | ||
| 192 | if [[ -n ${notmuchMsg} ]]; then | 192 | # if [[ -n ${notmuchMsg} ]]; then |
| 193 | getMimeTypes() { | 193 | # getMimeTypes() { |
| 194 | nix-shell -p mailcap --run "find \${buildInputs} -path '*/etc/mime.types' | head -n 1 | xargs -- cat" | 194 | # nix-shell -p mailcap --run "find \${buildInputs} -path '*/etc/mime.types' | head -n 1 | xargs -- cat" |
| 195 | } | 195 | # } |
| 196 | 196 | ||
| 197 | typeset -a messages | 197 | # typeset -a messages |
| 198 | messages=(${(z)$(notmuch search --output=messages ${notmuchMsg})}) | 198 | # messages=(${(z)$(notmuch search --output=messages ${notmuchMsg})}) |
| 199 | 199 | ||
| 200 | for message (${messages}); do | 200 | # for message (${messages}); do |
| 201 | typeset -A notmuchAtts | 201 | # typeset -A notmuchAtts |
| 202 | notmuchAtts=() | 202 | # notmuchAtts=() |
| 203 | 203 | ||
| 204 | while IFS= read -r -d $'\n' line; do | 204 | # while IFS= read -r -d $'\n' line; do |
| 205 | [[ ${line} =~ '(attachment|part)\{ ID: ([0-9]+)' ]] || continue | 205 | # [[ ${line} =~ '(attachment|part)\{ ID: ([0-9]+)' ]] || continue |
| 206 | attId=${match[2]} | 206 | # attId=${match[2]} |
| 207 | 207 | ||
| 208 | [[ ${line} =~ 'Content-type: multipart/' ]] && continue | 208 | # [[ ${line} =~ 'Content-type: multipart/' ]] && continue |
| 209 | 209 | ||
| 210 | fName="part_${attId}" | 210 | # fName="part_${attId}" |
| 211 | [[ ${line} =~ 'Filename: (([^,]|,[^ ])+)' ]] && fName=${match[1]} | 211 | # [[ ${line} =~ 'Filename: (([^,]|,[^ ])+)' ]] && fName=${match[1]} |
| 212 | 212 | ||
| 213 | if [[ ${#messages} -gt 1 ]]; then | 213 | # if [[ ${#messages} -gt 1 ]]; then |
| 214 | fName="${message}/${fName}" | 214 | # fName="${message}/${fName}" |
| 215 | fi | 215 | # fi |
| 216 | 216 | ||
| 217 | fExt="${fName:e}" | 217 | # fExt="${fName:e}" |
| 218 | [[ -n "${fExt}" ]] && fName="${fName:r}" | 218 | # [[ -n "${fExt}" ]] && fName="${fName:r}" |
| 219 | 219 | ||
| 220 | if [[ -z "${fExt}" && ${line} =~ 'Content-type: (([^,]|,[^ ])+)$' ]]; then | 220 | # if [[ -z "${fExt}" && ${line} =~ 'Content-type: (([^,]|,[^ ])+)$' ]]; then |
| 221 | fExt=$(getMimeTypes | grep ${match[1]}$'\t' | head -n 1 | awk '{ print $2; }') | 221 | # fExt=$(getMimeTypes | grep ${match[1]}$'\t' | head -n 1 | awk '{ print $2; }') |
| 222 | fi | 222 | # fi |
| 223 | 223 | ||
| 224 | mkdir -p ${fName:h} | 224 | # mkdir -p ${fName:h} |
| 225 | if [[ -n "${fExt}" ]]; then | 225 | # if [[ -n "${fExt}" ]]; then |
| 226 | fName=$(mktemp -p . "${fName}.XXXXXX.${fExt}") | 226 | # fName=$(mktemp -p . "${fName}.XXXXXX.${fExt}") |
| 227 | else | 227 | # else |
| 228 | fName=$(mktemp -p . "${fName}.XXXXXX") | 228 | # fName=$(mktemp -p . "${fName}.XXXXXX") |
| 229 | fi | 229 | # fi |
| 230 | 230 | ||
| 231 | notmuchAtts[${attId}]=${fName} | 231 | # notmuchAtts[${attId}]=${fName} |
| 232 | done <<(notmuch show --decrypt=false -- ${message} | tr -d $'\f') | 232 | # done <<(notmuch show --decrypt=false -- ${message} | tr -d $'\f') |
| 233 | 233 | ||
| 234 | for attId fName in ${(kv)notmuchAtts}; do | 234 | # for attId fName in ${(kv)notmuchAtts}; do |
| 235 | [[ -d ${fName:h} ]] || mkdir -p ${fName:h} | 235 | # [[ -d ${fName:h} ]] || mkdir -p ${fName:h} |
| 236 | printf "#%d → ‘%s’\n" "${attId}" "${fName}" >&2 | 236 | # printf "#%d → ‘%s’\n" "${attId}" "${fName}" >&2 |
| 237 | 237 | ||
| 238 | notmuch show --decrypt=false --part=${attId} -- ${message} | pv -W -D 2 -i 0.1 >${fName} | 238 | # notmuch show --decrypt=false --part=${attId} -- ${message} | pv -W -D 2 -i 0.1 >${fName} |
| 239 | done | 239 | # done |
| 240 | done | 240 | # done |
| 241 | fi | 241 | # fi |
| 242 | 242 | ||
| 243 | 243 | ||
| 244 | ${wormhole} && wormhole receive | 244 | ${wormhole} && wormhole receive |
