summaryrefslogtreecommitdiff
path: root/.old
diff options
context:
space:
mode:
Diffstat (limited to '.old')
-rwxr-xr-x.old/mime85
1 files changed, 85 insertions, 0 deletions
diff --git a/.old/mime b/.old/mime
new file mode 100755
index 0000000..7c6a649
--- /dev/null
+++ b/.old/mime
@@ -0,0 +1,85 @@
+#!/bin/sh
+# Media type csv caching
+cachedir="${XDG_CACHE_HOME:-$HOME/.cache}/mimewiz"
+mtypesrc="https://www.iana.org/assignments/media-types"
+mtypes="`grep -v '#'`" << TYPES
+#application
+audio
+font
+#example
+image
+#message
+#model
+#multipart
+text
+video
+TYPES
+nmtypes="`cat`" << TYPES
+pdf,
+spreadsheet ms-excel,
+wordprocessing ms-word,
+presentation ms-powerpoint,
+drawing,
+zip gzip,
+TYPES
+
+dlcsv() { curl -sS -C - -o "$2" "$1" || exit; }
+
+# Download all media type csv's if they're not avaliable
+mkdir -p "$cachedir"
+for mtype in $mtypes; do
+ mtypefile="$cachedir/$mtype.csv"
+ [ -e "$mtypefile" ] || dlcsv "$mtypesrc/$mtype.csv" "$mtypefile"
+done
+
+interactiveopt() {
+ # Usage: interactiveopt "options" "prompt" "maxopts (if unset than equal to inf)" "col"
+ # Purpose: give the user a numbered list of options. User can specify multiple choices. User can specify either the number or the name of the option.
+ # Output: saved in variable "opt"
+ unset opt # This won't be set if using recursion, do it in a while loop instead
+ while [ -z $opt ] 2>/dev/null; do
+ # Column option
+ [ -n "$4" ] && [ "$4" = "col" ] \
+ && echo "$1" | nl -s': ' | column \
+ || echo "$1" | nl -s': '
+ # Parse user input
+ read -p "$2" choices \
+ && choices="$(echo $choices | cut -d' ' -f1-$3)"
+ for choice in $choices; do
+ case "$choice" in
+ [0-9]*) opt="$(echo "$1" | head -"$(echo $choice | tr -cd '[:digit:]')" | tail -1) $opt" ;;
+ *) opt="$(echo "$1" | grep "^$choice$" 2>/dev/null) $opt" ;;
+ esac || ( echo "Invalid option \"$choice\"" && undet opt && break ) # Why wont this unset opt or break???????
+ done
+ done
+}
+
+
+# Choose mimetype:
+mtypes="$mtypes\n$(echo "$nmtypes" | cut -d',' -f1)"
+interactiveopt "$mtypes" "Choose mimetype: " 1
+mtype="$(echo "$opt" | cut -d' ' -f1)"
+echo "$mtype"
+echo
+
+# Choose subtype
+mtypefile="$cachedir/$mtype.csv"
+[ -e "$mtypefile" ] && interactiveopt "all\n$(cut -d',' -f1 "$mtypefile" | tail -n +2)" "Choose $mtype subtype: " "" col
+mfiletypes=" $opt "
+echo
+
+# Choose program
+interactiveopt "$(ls /usr/share/applications | sed 's/\.desktop//')" "Choose program to open with: " "" col
+program="$opt"
+echo "$program"
+echo
+
+#echo "$mfiletypes" | grep ' all ' && mfiletypes="$(cut -d',' -f1 "$cachedir/$mtype.csv" | tail -n +2)"
+
+# Xdg-mime commands
+#cut -d',' -f2 "$cachedir/image.csv"
+
+for mfiletype in $(cut -d',' -f1 "$cachedir/$mtype.csv" | tail -n +2); do
+ echo "Changing default program for $mfiletype to $program"
+ xdg-mime default "$program.desktop" $mfiletype
+done