diff options
Diffstat (limited to 'helpers')
-rwxr-xr-x | helpers/conflicts | 48 | ||||
-rwxr-xr-x | helpers/mimetypes | 27 |
2 files changed, 75 insertions, 0 deletions
diff --git a/helpers/conflicts b/helpers/conflicts new file mode 100755 index 0000000..fb40aef --- /dev/null +++ b/helpers/conflicts @@ -0,0 +1,48 @@ +#!/usr/bin/env zsh +## vim:ft=zsh +## Look for conflicting aliases and commands in ~/bin +## Since aliases are usually loaded from zshrc, which is not sourced +## for zsh script execution, the recommended usage is +## source .../conflicts +## in a running, interactive zsh + +typeset file dir alias +typeset PKG_DIR=$HOME/packages +typeset -a sfpath spath conflict + +is_in_path () { + typeset -i ret=1 + typeset dir + typeset file=$1 + shift + for dir in $@; { + if [[ -e $dir/$file ]] { + ret=0 + echo $dir/$file + } + } + return $ret +} + +sfpath=(${fpath:#$HOME*}) +spath=(${path:#$HOME*}) + +for file in $PKG_DIR/{*/provides/zsh/completions/*(N),zsh/etc/completions/*(N)}; { + conflict=($(is_in_path ${file:t} $sfpath)) + if (( ? == 0 )) { + echo "conflict: $file <-> ${(j:, :)conflict}" + } +} + +for file in $PKG_DIR/*/bin/*(N); { + conflict=($(is_in_path ${file:t} $spath)) + if (( ? == 0 )) { + echo "conflict: $file <-> ${(j:, :)conflict}" + } +} + +for alias in ${(k)aliases}; { + if [[ -n $commands[$alias] ]] && [[ $aliases[$alias] != (sudo |noglob |)$alias* ]]; then + echo "conflicting alias: $alias" + fi +} diff --git a/helpers/mimetypes b/helpers/mimetypes new file mode 100755 index 0000000..425d2b5 --- /dev/null +++ b/helpers/mimetypes @@ -0,0 +1,27 @@ +#!/usr/bin/env zsh +typeset -a audio video image +eval $(perl -ne 'if (/^mime_\w+\=\(/ or $found == 1) { $found = 1; print } if (/^\)/ and $found == 1) {$found = 0}' ~/.zshrc) + +while read mime extensions; do + [[ $mime == audio/* ]] && audio+=(${(s/ /)extensions}) + [[ $mime == video/* ]] && video+=(${(s/ /)extensions}) + [[ $mime == image/* ]] && image+=(${(s/ /)extensions}) +done < /etc/mime.types + +audio=(${(i)audio}) +video=(${(i)video}) +image=(${(i)image}) + +for mimetype in $audio; { + [[ ${mime_audio[(I)$mimetype]} == 0 ]] && echo "mime_audio+=$mimetype" +} +for mimetype in $video; { + [[ ${mime_video[(I)$mimetype]} == 0 ]] && echo "mime_video+=$mimetype" +} +for mimetype in $image; { + [[ ${mime_image[(I)$mimetype]} == 0 ]] && echo "mime_image+=$mimetype" +} + +echo "mime_audio=($audio)" +echo "mime_video=($video)" +echo "mime_image=($image)" |